본문 바로가기
Python/Python FAQ

Python 다수의 부분 플롯을 사용하여 부분 플롯 크기/간격을 개선하십시오., Improve subplot size/spacing with many subplots

by 베타코드 2023. 10. 8.
반응형

질문


저는 matplotlib에서 수직으로 쌓인 다수의 플롯을 생성해야 합니다. 결과물은 savefig를 사용하여 저장되고 웹페이지에서 볼 수 있으므로, 서브플롯이 서로 겹치지 않도록만 한다면 최종 이미지의 높이는 상관하지 않습니다.

그러나 피격을 허용하는 그림의 크기를 어떻게 설정하든 서브플롯은 항상 겹쳐 보입니다.

현재 코드는 다음과 같습니다.

import matplotlib.pyplot as plt
import my_other_module

titles, x_lists, y_lists = my_other_module.get_data()

fig = plt.figure(figsize=(10,60))
for i, y_list in enumerate(y_lists):
    plt.subplot(len(titles), 1, i)
    plt.xlabel("X 라벨")
    plt.ylabel("Y 라벨")
    plt.title(titles[i])
    plt.plot(x_lists[i],y_list)
fig.savefig('out.png', dpi=100)

답변


아래 HTML을 한국어로 번역하되, HTML 태그와 태그를 영어로 유지합니다.

다음을 확인하십시오. matplotlib: Tight Layout 가이드를 참조하고 matplotlib.pyplot.tight_layout 또는 matplotlib.figure.Figure.tight_layout을 사용해보십시오.

빠른 예제로:

import matplotlib.pyplot as plt

fig, axes = plt.subplots(nrows=4, ncols=4, figsize=(8, 8))
fig.tight_layout() # 또는 동등하게 "plt.tight_layout()"

plt.show()

Tight Layout 없이

enter image description here


Tight Layout 사용

enter image description here

반응형

댓글