1. 程式人生 > >Animation 動畫

Animation 動畫

ram show xtra 圖片 格式 信息 頻率 numpy als

1、定義方程

使用matplotlib做動畫也是可以的,我們使用其中一種方式,function animation來說說, 具體可參考matplotlib animation api。首先,我們做一些準備工作:

from matplotlib import pyplot as plt
from matplotlib import animation
import numpy as np
fig, ax = plt.subplots()

我們的數據是一個0~2π內的正弦曲線:

x = np.arange(0, 2*np.pi, 0.01)
line, = ax.plot(x, np.sin(x))
plt.show()

技術分享圖片

接著,構造自定義動畫函數animate,用來更新每一幀上各個x對應的y坐標值,參數表示第i幀:

def animate(i):
    line.set_ydata(np.sin(x + i/10.0))
    return line,

然後,構造開始幀函數init

def init():
    line.set_ydata(np.sin(x))
    return line,

2、參數設置

接下來,我們調用FuncAnimation函數生成動畫。參數說明:

  1. fig 進行動畫繪制的figure
  2. func 自定義動畫函數,即傳入剛定義的函數animate
  3. frames 動畫長度,一次循環包含的幀數
  4. init_func 自定義開始幀,即傳入剛定義的函數init
  5. interval 更新頻率,以ms計
  6. blit 選擇更新所有點,還是僅更新產生變化的點。應選擇True,但mac用戶請選擇False,否則無法顯示動畫
ani = animation.FuncAnimation(fig=fig,
                              func=animate,
                              frames=100,
                              init_func=init,
                              interval
=20, blit=False)
plt.show()

當然,你也可以將動畫以mp4格式保存下來,但首先要保證你已經安裝了ffmpeg 或者mencoder, 更多信息參考matplotlib animation api:

ani.save(basic_animation.mp4, fps=30, extra_args=[-vcodec, libx264])

Animation 動畫