Matplotlib에서 subplot2grid 방식으로 서브플롯(subplot)을 배치할 때, 기본 설정으로는 플롯들이 서로 너무 붙어 있어 가독성이 떨어질 수 있습니다. 이럴 때 GridSpec의 wspace와 hspace 파라미터를 조정하면 서브플롯 사이의 간격을 손쉽게 넓힐 수 있습니다.
구현 단계
- 그림(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, :]: 첫 번째 행 전체를 차지하는 서브플롯으로, 슬라이싱(:)을 사용해 여러 열에 걸친 배치가 가능합니다.
실행 결과

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