실시간 플롯을 그리는 동안 Matplotlib에서 X축을 이동시키려면 다음 단계를 따르면 됩니다.
구현 단계
- 그림(figure) 크기를 설정하고 서브플롯 주변과 사이의 여백(padding)을 조정합니다.
- 하나의 그림과 서브플롯 집합을 생성합니다.
- numpy를 사용하여 x와 y 데이터 포인트를 만듭니다.
- plot() 메서드를 사용하여 x, y 데이터를 플롯합니다.
- 실시간 플롯 중에 X축을 이동시키는 animate 함수를 반복적으로 호출하여 애니메이션을 생성합니다.
- 그림을 화면에 표시하려면 show() 메서드를 사용합니다.
예제 코드
import matplotlib.pylab as plt
import matplotlib.animation as animation
import numpy as np
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
fig, ax = plt.subplots()
x = np.linspace(0, 15, 100)
y = np.cos(x)
ax.plot(x, y, lw=2, color='red')
def animate(frame):
ax.set_xlim(left=0, right=frame)
ani = animation.FuncAnimation(fig, animate, frames=10)
plt.show()코드 설명
위 코드에서 np.linspace(0, 15, 100)로 0부터 15까지 100개의 균등한 간격의 x값을 생성하고, 이에 대한 코사인 값을 y값으로 사용했습니다. 핵심은 animate(frame) 함수입니다. 이 함수는 프레임이 진행될 때마다 ax.set_xlim(left=0, right=frame)을 호출하여 X축의 오른쪽 경계를 현재 프레임 값으로 갱신함으로써 축이 마치 움직이는 것처럼 보이게 만듭니다.
animation.FuncAnimation(fig, animate, frames=10)은 총 10개의 프레임에 걸쳐 animate 함수를 반복 호출하며 애니메이션을 구동합니다. 실행 결과, 코사인 곡선 위에서 X축 범위가 점차 넓어지며 실시간으로 축이 이동하는 효과를 확인할 수 있습니다.
출력 결과
