Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Matplotlib에서 subplot2grid로 서브플롯 간격 넓히는 방법

Matplotlib에서 subplot2grid 방식으로 서브플롯(subplot)을 배치할 때, 기본 설정으로는 플롯들이 서로 너무 붙어 있어 가독성이 떨어질 수 있습니다. 이럴 때 GridSpecwspacehspace 파라미터를 조정하면 서브플롯 사이의 간격을 손쉽게 넓힐 수 있습니다.

구현 단계

  • 그림(figure) 크기를 설정하고, 서브플롯 사이 및 주변 여백(padding)을 자동으로 조정합니다.
  • 그림 안에 서브플롯을 배치하기 위한 그리드 레이아웃(GridSpec)을 생성합니다.
  • update() 메서드로 그리드의 서브플롯 간격 파라미터를 변경합니다.
  • 현재 그림에 서브플롯을 추가합니다.
  • show() 메서드를 호출하여 그림을 화면에 표시합니다.

예제 코드

from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

ax = plt.GridSpec(2, 2)
ax.update(wspace=0.5, hspace=0.5)

ax1 = plt.subplot(ax[0, :])
ax2 = plt.subplot(ax[1, 0])
ax3 = plt.subplot(ax[1, 1])

plt.show()

주요 파라미터 설명

  • wspace: 서브플롯 사이의 가로 간격을 지정합니다. 값은 평균 축(axis) 너비에 대한 비율로 계산됩니다.
  • hspace: 서브플롯 사이의 세로 간격을 지정합니다. 마찬가지로 평균 축 높이에 대한 비율입니다.
  • ax[0, :]: 첫 번째 행 전체를 차지하는 서브플롯으로, 슬라이싱(:)을 사용해 여러 열에 걸친 배치가 가능합니다.

실행 결과

Matplotlib에서 subplot2grid로 서브플롯 간격 넓히는 방법

위 코드를 실행하면 2×2 그리드에서 첫 행은 하나의 넓은 플롯이, 두 번째 행에는 두 개의 플롯이 배치되며, wspace=0.5hspace=0.5 설정 덕분에 서브플롯 사이에 충분한 여백이 확보된 것을 확인할 수 있습니다.