コード
解説
モジュールのインポート
グラフの設定
図の大きさは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_*
を使って動かす。
具体的には、FancyBboxPatch
はset_x
とset_width
,Wedge, Arc, Ellipse, Circle
は set_center
, Line2D
はset_xdata
で動かす。
アニメーションの表示
intervalはアニメーションの各画像が切り替わる間隔の設定で単位はms、
framesはupdate関数を実行される回数で、interval*frames=5000[ms]なので、5秒のアニメーションとなる。
HTML(ani.to_html5_video())とすればjupyter notebook上にアニメーションを表示できる。
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)参考
Reference for Matplotlib artists — Matplotlib 3.9.2 documentation
コメント