목차
[Python, matplotlib] 여러 그래프에 한 화면에 그리기 (subplot)
이번 포스트의 주제는 크게 두가지로 진행됩니다.
- 여러개의 서브 그래프(Subplot) 만들기
- 2개 이상의 그래프를 한개의 화면에 나타내기 (Multiple plots in one graph)
위 작업을 위한 핵심 모듈은 subplots 입니다. Syntax 는 아래와 같습니다.
matplotlib.pyplot.subplots(nrows=1, ncols=1, *, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw)
내부 속성에 대한 정의는 링크에서 확인하시면 됩니다. 하지만 일반적으로 사용하는 속성은 아래 예제 코드를 통해 충분히 인지 할 수 있습니다.
여러개의 서브 그래프(Subplot) 만들기 예제
예제 코드1>>
import matplotlib.pyplot as plt
import random
x = [0, 1, 2, 3]
#임의의 y값 넣기
y = []
for _ in range(4):
y.append(random.randrange(0,10))
plt.subplot(1, 2, 1)
plt.plot(x,y)
plt.title("Plot1")
#임의의 y값 넣기
y = []
for _ in range(4):
y.append(random.randrange(0,10))
plt.subplot(1, 2, 2)
plt.plot(x,y)
plt.title("Plot2")
plt.show()
결과>>
주석>>
plt.subplot(1, 2, 1)
위 문장만 이해하면 됩니다. subplot 구성을 1행 2열의 테이블 형태를 구성하겠다는 뜻이고 마지막 1은 해당 subplot은 1행 1열에 위치하겠다는 의미입니다.
예제 코드2>>
import matplotlib.pyplot as plt
import random
x = [0, 1, 2, 3]
#임의의 y값 넣기
y = []
for _ in range(4):
y.append(random.randrange(0,10))
plt.subplot(2, 1, 1)
plt.plot(x,y)
plt.title("Plot1")
#임의의 y값 넣기
y = []
for _ in range(4):
y.append(random.randrange(0,10))
plt.subplot(2, 1, 2)
plt.plot(x,y)
plt.title("Plot2")
plt.show()
결과>>
주석>>
이번에는 subplot을 1행2열로 변경하였기 때문에 위와 같은 결과가 나왔습니다.
2개 이상의 그래프를 한개의 화면에 나타내기 (Multiple plots in one graph)
예제 코드>>
import matplotlib.pyplot as plt
import random
x = [0, 1, 2, 3]
#임의의 y값 넣기
y = []
for _ in range(4):
y.append(random.randrange(0,10))
fig, ax1 = plt.subplots()
ax1.plot(x, y, color="red")
ax1.tick_params(axis='y', labelcolor="red")
#임의의 y값 넣기
y = []
for _ in range(4):
y.append(random.randrange(0,10))
ax2 = ax1.twinx() #한 그래프에 두번째 plot 넣기
ax2.plot(x, y, color="blue")
ax2.tick_params(axis='y', labelcolor="blue")
plt.show()
결과>>
주석>>
첫번째 plot을 subplot으로 선언하고 그 뒤 추가할 plot에 대해 twinx 함수로 동일 x 축을 공유하는 그래프를 만들 수 있었다.
'파이썬(Python) > matplotlib' 카테고리의 다른 글
[Python]Matplotlib 그래프 그리기 팁(사이즈, subplot, 주석 (0) | 2022.03.04 |
---|---|
[Python, matplotlib] 선 스타일, 선 색상, 선 두께 (0) | 2021.10.17 |
[Python, matplotlib] 그래프에 Grid 그리기 예제 (옵션사용) (0) | 2021.10.15 |
graph내에 event 처리 방법 - 마우스 클릭, 롤오버 (0) | 2020.11.20 |
multiple plot in one figure (여러 plot 한 화면에 표기) (0) | 2020.11.18 |