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

Matplotlib·Seaborn 서브플롯 사이 간격 조정하는 방법 (다중 플롯 레이아웃)

여러 개의 그래프를 하나의 화면에 배치하는 다중 플롯 레이아웃에서는 서브플롯(subplot) 사이의 간격이 너무 좁거나 넓으면 전체 시각화가 지저분해 보일 수 있습니다. 이 글에서는 MatplotlibSeaborn을 사용해 서브플롯 간의 공간을 손쉽게 조정하는 방법을 단계별로 살펴봅니다.

단계별 진행 과정

  • 그림(figure) 크기를 설정하고, 서브플롯 사이와 주변의 여백(padding)을 조정합니다.

  • 그림과 서브플롯 집합을 생성합니다.

  • 서브플롯 레이아웃 파라미터를 조정합니다.

  • 모든 서브플롯에 Seaborn 박스 플롯(box plot)을 그립니다.

  • show() 메서드를 사용해 그림을 화면에 표시합니다.

예제 코드

import seaborn as sns
from matplotlib import pyplot as plt

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

fig, axes = plt.subplots(2, 2)

# 서브플롯 레이아웃 파라미터 조정
fig.subplots_adjust(hspace=0.125, wspace=0.125)

# 모든 서브플롯에 Seaborn 박스 플롯 생성
sns.boxplot(ax=axes[0, 0])
sns.boxplot(ax=axes[0, 1])
sns.boxplot(ax=axes[1, 0])
sns.boxplot(ax=axes[1, 1])

# 플롯 표시
plt.show()

핵심 파라미터 설명

subplots_adjust() 함수는 서브플롯 배치를 세밀하게 제어할 수 있는 핵심 도구입니다. 주요 파라미터는 다음과 같습니다.

  • hspace: 서브플롯 사이의 세로 간격을 평균 축 높이에 대한 비율로 지정합니다.

  • wspace: 서브플롯 사이의 가로 간격을 평균 축 너비에 대한 비율로 지정합니다.

값이 커질수록 서브플롯 사이의 간격이 넓어지고, 작아지면 간격이 좁아집니다.

실행 결과

위 코드를 실행하면 2×2 배열로 배치된 네 개의 박스 플롯이 적절한 간격을 유지한 채 깔끔하게 출력됩니다.

Matplotlib·Seaborn 서브플롯 사이 간격 조정하는 방법 (다중 플롯 레이아웃)

추가 팁

최신 Matplotlib 버전에서는 fig.tight_layout() 또는 plt.subplots(constrained_layout=True) 옵션을 사용하면 서브플롯 간격을 자동으로 최적화할 수 있습니다. 다만 픽셀 단위의 정교한 수동 제어가 필요하다면 subplots_adjust()를 활용하는 것이 가장 확실한 방법입니다.