작성일자 : 2024-09-21
Ver 0.1.1
대표 표현 방식
matplotlib은 대표적으로 stateless API(Objected-based) 방식과 statefull API(state-based) 방식으로 사용할 수 있다.
stateless 방법은 내가 지정한 figure, 내가 지정한 ax에 그림을 그리는 방법 (import matplotib)이고,
stateful 방법은 현재의 figure, 현재의 ax에 그림을 그리는 방법 (import matplotlib.pyplot)이다.
stateful 방법은 stateless 방법을 쉽게 사용하기 위한 방법이다. 이에 stateless 만큼 정교한 작업은 할 수 없다.
figure
- 그림을 그리기 전 액자의 모양과 크기를 정하는 것
- 그림은 figure(액자)에 바로 그러지는 것이 아닌, ax(캔버스)에 그려지게 됨
- 이 ax(캔버스)가 들어갈 액자의 크기를 미리 정하는 것
ax (axes)
- 액자(figure)의 크기가 정해졌으면, 이제 해당 액자 안에 캔버스가 몇 개 들어가고, 어떻게 배치할지 정하면 됨
- 실제로 그림이 그려지는 공간
axis
- ax에 그려진 그래프의 축
stateless API (Objected-based)
import matplotlib.pyplot as plt
# figure 방법 1: 빈 figure를 생성하고 그 안에 ax를 추가하기
fig = plt.figure(figsize=(8, 2.5), facecolor="#c1f1f1") # ax가 없는 빈 figure 생성
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8], facecolor="#e1e1e1") # ax 추가
# figure 방법 2: 하나의 ax 를 가지는 하나의 figure 생성(ax의 색깔 지정 못함)
fig, ax = plt.subplots(figsize=(8, 2.5), facecolor="#c1f1f1")
# 그래프 그리기
ax = fig.add_subplot(<rows>, <columns>, 1)
...
ax = fig.add_subplot(<rows>, <columns>, 2)
...
fig.add_subplot(<rows>, <columns>, <index>)
...
plt.show()
stateful API
import matplotlib.pyplot as plt
# frame 크기 설정
plt.figure(figsize = (<x length>,<y length>))
# 그래프 1 그리기
plt.subplot(<rows>, <columns> , 1)
...
# 그래프 2 그리기
plt.subplot(<rows>, <columns> , 2)
...
# 그래프 n 그리기
plt.subplot(<rows>, <columns> , <index>)
...