matplotlib 서브 플롯의 비율과 간격을 한 번에 조정
4053 단어 파이썬matplotlib시각화
하고 싶은 일
이런 식으로, 폭이 다른 subplot를 기호의 간격으로 플롯 할 수 있도록 하고 싶다.
결론
plt.subplots()
의 gridspec_kw
되는 인수 로 한번 해결!
설명
여백을 조정하면서 폭과 높이가 다른 subplot을 만들려면 예를 들어 @simonritchie님의 Qiita 기사 에서 소개된 대로 GridSpec()
를 사용하면 됩니다. 공식 사용자 가이드 도 거의 같은 방법을 소개하고 있는 것 같습니다.
그러나 이러한 기사에서는 복잡한 레이아웃의 그림을 만들고 있어 상당히 기술량이 많은 처리가 되고 있습니다. 다만 단순히 비율이 다른 만큼의 그림을 만들고 싶을 뿐인데, 같은 처리를 쓰는 것은 상당히 귀찮습니다. "더 쉬운 방법 없을까-"라고 생각하고, 아무렇지도 않게 plt.subplots()
의 인수를 바라보고 있으면 발견했습니다. gridspec_kw
입니다! 그렇습니다!
plt.subplots()
가 내부적으로 GridSpec()
를 부르고 있어, 그 때에 먹일 수 있는 인수를 지정할 수 있는 패턴입니다. 시메시메.
공식 API 에서 GridSpec
의 인수를 조사해 주면, 폭/높이의 조정은 width_ratios
/ height_ratios
알아요.
그래서 wspace
에 이러한 값을 지정하는 사전을 먹이면 OK입니다!
물론 hspace
/gridspeck_kw
같은 sharex
다른 인수와 함께 사용할 수 있습니다.
import matplotlib.pyplot as plt
fig, axes = plt.subplots(
3, 2, # 縦 x 横
gridspec_kw=dict(width_ratios=[1,5], height_ratios=[1,4,4], wspace=0.1, hspace=0.3), # 今回のミソ
sharex='col', sharey='row', figsize=(6, 7) # もちろん他の引数と併用可
)
## ところで、なんで subplotsの順番は nrows x ncolなのに、figsizeは (横, 縦) なんだろう?
그리고는 손에 넣은 sharey
에 대해서 좋아하는 플롯 조작을 하는 것 뿐입니다.
(덧붙여서, 「왼쪽 위의 ax 이란」이라고 하는 경우에는 plt.subplots()
입니다.)
이상입니다. 끝까지 읽어 주셔서 감사합니다!
추가:
기사 중에서 언급한 공식 사용자 가이드 의 절에도, gridspeck_kw에 대한 언급이 있었던 것을 보충하겠습니다.
또한 비슷한 방법은 다른 기사에서도 이미 소개되었던 것을 발견했기 때문에 참고로 링크를 붙입니다.
h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 10388462 / 마 tp t t ぃ b ぢ
Reference
이 문제에 관하여(matplotlib 서브 플롯의 비율과 간격을 한 번에 조정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/MtNouchi/items/7818ed83e825938cdcae
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
plt.subplots()
의 gridspec_kw
되는 인수 로 한번 해결!설명
여백을 조정하면서 폭과 높이가 다른 subplot을 만들려면 예를 들어 @simonritchie님의 Qiita 기사 에서 소개된 대로 GridSpec()
를 사용하면 됩니다. 공식 사용자 가이드 도 거의 같은 방법을 소개하고 있는 것 같습니다.
그러나 이러한 기사에서는 복잡한 레이아웃의 그림을 만들고 있어 상당히 기술량이 많은 처리가 되고 있습니다. 다만 단순히 비율이 다른 만큼의 그림을 만들고 싶을 뿐인데, 같은 처리를 쓰는 것은 상당히 귀찮습니다. "더 쉬운 방법 없을까-"라고 생각하고, 아무렇지도 않게 plt.subplots()
의 인수를 바라보고 있으면 발견했습니다. gridspec_kw
입니다! 그렇습니다!
plt.subplots()
가 내부적으로 GridSpec()
를 부르고 있어, 그 때에 먹일 수 있는 인수를 지정할 수 있는 패턴입니다. 시메시메.
공식 API 에서 GridSpec
의 인수를 조사해 주면, 폭/높이의 조정은 width_ratios
/ height_ratios
알아요.
그래서 wspace
에 이러한 값을 지정하는 사전을 먹이면 OK입니다!
물론 hspace
/gridspeck_kw
같은 sharex
다른 인수와 함께 사용할 수 있습니다.
import matplotlib.pyplot as plt
fig, axes = plt.subplots(
3, 2, # 縦 x 横
gridspec_kw=dict(width_ratios=[1,5], height_ratios=[1,4,4], wspace=0.1, hspace=0.3), # 今回のミソ
sharex='col', sharey='row', figsize=(6, 7) # もちろん他の引数と併用可
)
## ところで、なんで subplotsの順番は nrows x ncolなのに、figsizeは (横, 縦) なんだろう?
그리고는 손에 넣은 sharey
에 대해서 좋아하는 플롯 조작을 하는 것 뿐입니다.
(덧붙여서, 「왼쪽 위의 ax 이란」이라고 하는 경우에는 plt.subplots()
입니다.)
이상입니다. 끝까지 읽어 주셔서 감사합니다!
추가:
기사 중에서 언급한 공식 사용자 가이드 의 절에도, gridspeck_kw에 대한 언급이 있었던 것을 보충하겠습니다.
또한 비슷한 방법은 다른 기사에서도 이미 소개되었던 것을 발견했기 때문에 참고로 링크를 붙입니다.
h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 10388462 / 마 tp t t ぃ b ぢ
Reference
이 문제에 관하여(matplotlib 서브 플롯의 비율과 간격을 한 번에 조정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/MtNouchi/items/7818ed83e825938cdcae
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import matplotlib.pyplot as plt
fig, axes = plt.subplots(
3, 2, # 縦 x 横
gridspec_kw=dict(width_ratios=[1,5], height_ratios=[1,4,4], wspace=0.1, hspace=0.3), # 今回のミソ
sharex='col', sharey='row', figsize=(6, 7) # もちろん他の引数と併用可
)
## ところで、なんで subplotsの順番は nrows x ncolなのに、figsizeは (横, 縦) なんだろう?
Reference
이 문제에 관하여(matplotlib 서브 플롯의 비율과 간격을 한 번에 조정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/MtNouchi/items/7818ed83e825938cdcae텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)