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

Matplotlib로 하나의 그림에 10개 이상의 서브플롯 만드는 방법

Matplotlib에서 하나의 그림(figure) 안에 10개 이상의 서브플롯(subplot)을 배치하려면 subplots() 메서드에 원하는 행(row)과 열(column) 개수를 지정하면 됩니다. 이 방법을 사용하면 복잡한 레이아웃도 간단한 코드 한 줄로 손쉽게 구성할 수 있습니다.

구현 단계

  • plt.rcParams를 사용해 그림 크기(figure size)를 설정하고, 서브플롯 사이 및 주변 여백(padding)을 자동으로 조정합니다.
  • 배치할 서브플롯의 행(rows) 개수와 열(cols) 개수를 정의합니다. 예를 들어 4×3이면 총 12개의 서브플롯이 생성됩니다.
  • plt.subplots(nrows=rows, ncols=cols)를 호출하여 figure 객체와 서브플롯 배열(axes)을 동시에 생성합니다.
  • plt.show() 메서드를 호출해 최종 그림을 화면에 표시합니다.

예제 코드

from matplotlib import pyplot as plt

# 그림 크기 설정
plt.rcParams["figure.figsize"] = [7.50, 3.50]
# 서브플롯 간 여백 자동 조정
plt.rcParams["figure.autolayout"] = True

rows = 4
cols = 3

# 4행 × 3열 = 총 12개의 서브플롯 생성
fig, axes = axes = plt.subplots(nrows=rows, ncols=cols)

plt.show()

실행 결과

위 코드를 실행하면 4행 3열로 구성된 총 12개의 빈 서브플롯이 하나의 그림 안에 격자 형태로 나타납니다.

추가 팁

생성된 axes는 NumPy 배열 형태로 반환되므로, axes[i][j]처럼 인덱스를 사용해 각 서브플롯에 개별적으로 데이터를 그리거나 제목·축 레이블을 지정할 수 있습니다. 또한 sharex=True, sharey=True 옵션을 함께 사용하면 서브플롯 간에 x축과 y축을 공유해 더 깔끔한 시각화를 만들 수 있습니다.