[파이썬] 다중 서브플롯 그리기

서브플롯(subplot)은 하나의 그림에서 여러 개의 작은 그래프를 나타내는데 사용됩니다. 다중 서브플롯을 그리기 위해서는 Matplotlib 라이브러리를 사용할 수 있습니다. 이 글에서는 Python에서 다중 서브플롯을 그리는 방법에 대해 알아보겠습니다.

Matplotlib을 이용한 다중 서브플롯 그리기

Matplotlib은 데이터 시각화를 위한 Python 라이브러리로서, 서브플롯 그리기 기능을 제공합니다. 아래 예제를 통해 Matplotlib을 이용하여 다중 서브플롯을 그리는 방법을 살펴보겠습니다.

import matplotlib.pyplot as plt
import numpy as np

# 데이터 생성
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# 서브플롯 생성
fig, axes = plt.subplots(nrows=2, ncols=1, figsize=(8, 6))

# 첫 번째 서브플롯
axes[0].plot(x, y1)
axes[0].set_title('Sine')

# 두 번째 서브플롯
axes[1].plot(x, y2)
axes[1].set_title('Cosine')

# 각 서브플롯에 레이블 추가
axes[0].set_xlabel('x')
axes[0].set_ylabel('y')
axes[1].set_xlabel('x')
axes[1].set_ylabel('y')

# 전체 그래프 제목 추가
plt.suptitle('Sine and Cosine')

# 서브플롯 간 간격 조절
plt.tight_layout()

# 그래프 출력
plt.show()

위의 코드는 먼저 matplotlib.pyplot 모듈을 import한 다음, numpy를 사용하여 데이터를 생성합니다.

plt.subplots(nrows, ncols, figsize) 함수를 사용하여 원하는 서브플롯의 개수와 전체 그림의 크기를 설정합니다. 위의 예제에서는 2개의 행과 1개의 열을 가진 서브플롯을 생성하고, 전체 그림의 크기는 가로 8인치, 세로 6인치로 설정하였습니다.

각 서브플롯은 axes 객체로서 접근할 수 있습니다. 위의 예제에서는 첫 번째 서브플롯 axes[0]와 두 번째 서브플롯 axes[1]를 생성하였습니다. plot 함수를 사용하여 각 서브플롯에 데이터를 그리고, set_title, set_xlabel, set_ylabel 함수를 사용하여 제목과 축 레이블을 설정합니다.

서브플롯을 모두 생성한 후에는 suptitle 함수를 사용하여 전체 그림의 제목을 추가하고, tight_layout 함수를 사용하여 서브플롯 간의 간격을 조절합니다.

마지막으로 show 함수를 사용하여 그래프를 출력합니다.

다중 서브플롯을 그리기 위해서는 subplots 함수의 nrowsncols 인자를 조절하면서 원하는 서브플롯의 개수와 배치를 설정할 수 있습니다.

위의 코드를 실행하면 x축에 대해 사인 함수와 코사인 함수를 동시에 그리는 다중 서브플롯이 생성됩니다.

다중 서브플롯을 활용하면 여러 그래프를 한 번에 비교하거나 다른 그래프와의 상관관계를 살펴볼 수 있습니다. Matplotlib을 사용하여 다중 서브플롯을 그리는 방법에 대해 알아봤습니다. 참고하시기 바랍니다.