Matplotlib 여러 개의 그래프 그리기


Matplotlib 여러 개의 그래프 그리기

matplotlib.pyplot 모듈의 subplot() 함수를 이용하면 여러 개의 그래프를 하나의 그림으로 나타낼 수 있습니다.


기본 사용

예제1

import numpy as np
import matplotlib.pyplot as plt

x1 = np.linspace(0.0, 5.0)
x2 = np.linspace(0.0, 2.0)

y1 = np.cos(2 * np.pi * x1) * np.exp(-x1)
y2 = np.cos(2 * np.pi * x2)

plt.subplot(2, 1, 1)                # nrows=2, ncols=1, index=1
plt.plot(x1, y1, 'o-')
plt.title('1st Graph')
plt.ylabel('Damped oscillation')

plt.subplot(2, 1, 2)                # nrows=2, ncols=1, index=2
plt.plot(x2, y2, '.-')
plt.title('2nd Graph')
plt.xlabel('time (s)')
plt.ylabel('Undamped')

plt.tight_layout()
plt.show()

우선 NumPy 함수를 사용해서 두 개의 cosine 함수 y1, y2를 만듭니다.

subplot(nrows, ncols, index)의 순서대로 nrows=2, ncols=1을 입력하고,

y1 함수는 index=1, y2 함수는 index=2를 입력해서 각각 위, 아래에 위치하도록 합니다.

결과는 아래와 같습니다.


Matplotlib 여러 개의 그래프 그리기 - 기본 사용

Matplotlib 여러 개의 그래프 그리기 - 기본 사용



예제2

import numpy as np
import matplotlib.pyplot as plt

x1 = np.linspace(0.0, 5.0)
x2 = np.linspace(0.0, 2.0)

y1 = np.cos(2 * np.pi * x1) * np.exp(-x1)
y2 = np.cos(2 * np.pi * x2)

plt.subplot(1, 2, 1)                # nrows=1, ncols=2, index=1
plt.plot(x1, y1, 'o-')
plt.title('1st Graph')
plt.xlabel('time (s)')
plt.ylabel('Damped oscillation')

plt.subplot(1, 2, 2)                # nrows=1, ncols=2, index=2
plt.plot(x2, y2, '.-')
plt.title('2nd Graph')
plt.xlabel('time (s)')
plt.ylabel('Undamped')

plt.tight_layout()
plt.show()

두 그래프를 수평 방향으로 배치하기 위해서 subplot(nrows, ncols, index)의 순서대로 nrows=1, ncols=2을 입력하고,

y1 함수는 index=1, y2 함수는 index=2를 입력해서 각각 좌우로 위치하도록 합니다.

결과는 아래와 같습니다.


Matplotlib 여러 개의 그래프 그리기 - 기본 사용2

Matplotlib 여러 개의 그래프 그리기 - 기본 사용2