Matplotlib에서 subplot(row, col, index) 메서드를 사용하면 하나의 figure(그림 영역)를 row × col 개수만큼 분할하고, 각 위치(index)에 원하는 그래프를 배치할 수 있습니다. 이번 글에서는 하나의 figure 안에 두 개의 그래프를 좌우로 나란히 배치하는 방법을 단계별로 살펴보겠습니다.
구현 단계
numpy를 사용해 x, y1, y2 데이터 포인트를 생성합니다.
subplot()메서드에 nrows = 1, ncols = 2, index = 1을 지정하여 현재 figure에 첫 번째 서브플롯을 추가합니다.plot()메서드로 x와 y1 데이터를 사용해 선 그래프를 그립니다.plt.title(),plt.xlabel(),plt.ylabel()메서드를 사용해 첫 번째 그래프의 제목과 X축, Y축 레이블을 설정합니다.nrows = 1, ncols = 2, index = 2로 두 번째 서브플롯을 추가합니다.
plot()메서드로 x와 y2 데이터를 사용해 선 그래프를 그립니다.두 번째 그래프의 제목과 X축, Y축 레이블을 설정합니다.
plt.show()메서드를 호출하여 완성된 figure를 화면에 표시합니다.
예제 코드
from matplotlib import pyplot as plt
import numpy as np
xPoints = np.array([2, 4, 6, 8, 10, 12, 14, 16, 18, 20])
y1Points = np.array([12, 14, 16, 18, 10, 12, 14, 16, 18, 120])
y2Points = np.array([12, 7, 6, 5, 4, 3, 2, 2, 1, 12])
plt.subplot(1, 2, 1) # 1행 2열 중 인덱스 1
plt.plot(xPoints, y1Points)
plt.title("My first plot!")
plt.xlabel('X-axis ')
plt.ylabel('Y-axis ')
plt.subplot(1, 2, 2) # 인덱스 2
plt.plot(xPoints, y2Points)
plt.title("My second plot!")
plt.xlabel('X-axis ')
plt.ylabel('Y-axis ')
plt.show()실행 결과
위 코드를 실행하면 하나의 figure 안에 두 개의 그래프가 좌우로 나란히 배치되어 출력됩니다. 왼쪽에는 x와 y1 데이터의 선 그래프가, 오른쪽에는 x와 y2 데이터의 선 그래프가 각각 표시됩니다.
