[matplotlib animation] 23. 胴体が伸びる犬

matplotlib Animation
スポンサーリンク

matplotlib FuncAnimationによる胴体が伸びる犬のアニメーション

コード

でできるアニメーション。

解説

モジュールのインポート

グラフの設定

図の大きさはfigsize(8,4)の横が長い形にしている。

犬の作成

犬は、matplotlibには簡単な図形を描写する機能(patches, lines)で描いた。詳細は↓にある。

[matplotlib] 4. 犬(dog)
matplotlibの簡易的な図形描写モジュールpatchesにより、犬を描写する。

アニメーション表示するための変数の設定

伸びて縮む設定はx_shiftでやるため、np.linspace()で増加する配列と低下する配列を作って、np.hstack()で結合させている。
歩く設定は、1回伸びて縮む間に10歩歩くようにするため、x_shiftの10分の1の大きさの配列を作って、それをnp.tile()で10回繰り返し、x_shiftとサイズを揃えている。
後ろ足は、前足の次に動くようにするため、np.zeros(5)を前に追加して、後ろ側の5つの要素をカットすることでサイズを揃えている。

アニメーションの設定

アニメーションの初期設定

initはanimationの開始時に実行されるもので、グラフの初期設定をしている。
returnにアニメーションで動かしたいものを記述する。

アニメーションの設定

各図形、線をset_*を使って動かす。
具体的には、
FancyBboxPatchset_xset_width,
Wedge, Arc, Ellipse, Circleは set_center
Line2Dset_xdata
で動かす。

アニメーションの表示

intervalはアニメーションの各画像が切り替わる間隔の設定で単位はms、
framesはupdate関数を実行される回数で、interval*frames=5000[ms]なので、5秒のアニメーションとなる。

HTML(ani.to_html5_video())とすればjupyter notebook上にアニメーションを表示できる。

参考

Reference for matplotlib artists — Matplotlib 3.0.2 documentation

コメント