Matplotlib에서 여러 개의 서브플롯(subplot)을 배치할 때, 서브플롯 사이의 수평 간격을 넓히거나 좁히고 싶은 경우가 자주 있습니다. 이때는 subplots_adjust() 메서드에 wspace=1 옵션을 지정하여 간격을 손쉽게 조절할 수 있습니다.
wspace는 서브플롯 열(column) 사이의 너비 비율을 의미하며, 값이 클수록 수평 간격이 넓어집니다. 반대로 행(row) 사이의 수직 간격은 hspace 옵션으로 조절할 수 있습니다.
구현 단계
- 그림(figure)의 크기를 설정하고, 서브플롯 주변 및 사이의 기본 여백을 조정합니다.
- NumPy를 사용하여 x, y 데이터 포인트를 생성합니다.
plt.subplots()를 사용하여 2×2 형태, 즉 4개의 축(ax)을 가진 그림과 서브플롯 세트를 생성합니다.- 서브플롯 간 수평 간격을 조절하기 위해
wspace=1값을 지정합니다. show()메서드를 호출하여 최종 그림을 화면에 표시합니다.
예제 코드
import numpy as np import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True x = np.linspace(0, 2 * np.pi, 400) y = np.sin(x ** 2) fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(nrows=2, ncols=2) fig.subplots_adjust(wspace=1) plt.show()
실행 결과
위 코드를 실행하면 2×2로 배치된 네 개의 서브플롯이 생성되며, 왼쪽 열과 오른쪽 열 사이에 넓은 수평 간격이 적용된 것을 확인할 수 있습니다.

참고 사항
figure.autolayout(Tight Layout)이 활성화되어 있으면 subplots_adjust()로 지정한 간격 설정이 무시될 수 있습니다. 의도한 대로 간격이 조절되지 않는다면 plt.rcParams["figure.autolayout"] = False로 설정한 후 다시 시도해 보세요. 또한 수직 간격을 조절하고 싶다면 같은 방식으로 hspace 값을 지정하면 됩니다.