import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation
import IPython
10wk-36: 애니메이션
1. 강의영상
2. Imports
3. FuncAnimation
-
모티브
= 6
k = np.linspace(0,10,100)
x = np.sin(0.1*k*x)
y plt.plot(x,y)
\(k=1,2,3,\dots\)로 바꾸면서 변화하는 그림을 연속으로 출력되게 하여 애니메이션으로 보고 싶다. 따라서
- 하나의 고정된 그림을 정의하고
- 그림안의 내용물을 frame에 따라 바꾸는 동작을 정의하여
이들을 결합하는 전략을 생각해보자.
-
위의코드는 아래와 같다.
= 4
k = np.linspace(0,10,100)
x = np.sin(0.1*k*x)
y = plt.figure() # 하나의 고정된 그림을 정의하는 코드
fig = fig.gca()
ax # 고정된 그림에서 내용물을 frame에 따라서 바꾸는 동작을 정의하는 코드 ax.plot(x,y)
-
애니메이션
= plt.figure() # 하나의 고정된 그림을 정의하는 코드 fig
<Figure size 672x480 with 0 Axes>
def func(frame):
= fig.gca()
ax
ax.clear()= np.linspace(0,10,100)
x = np.sin(0.1*frame*x)
y # 고정된 그림에서 내용물을 frame에 따라서 바꾸는 동작을 정의하는 코드 ax.plot(x,y)
= matplotlib.animation.FuncAnimation(
ani # 하나의 고정된 그림
fig, # 고정된 그림에서 내용물을 frame에 따라서 바꾸는 동작을 함수로 정의하고, 그 함수를 넣음
func, =50
frames )
display(IPython.display.HTML(ani.to_jshtml()))
4. HW
= np.linspace(0,10,100)
x = np.sin(5*x)
y plt.plot(x,y)
위의 그림을 이용하여 애니메이션을 만들어라. 이때 frame이 짝수일경우는 color=’C0’로 frame이 홀수일 경우는 color=’C1’으로 그린 그림이 나오도록 애니메이션을 구성하라.