[matplotlib animation] 25. サインポール(理容店を示す細長い円柱状の看板)

matplotlib Animation

はじめに

matplotlib FuncAnimationにより、サインポールのアニメーションを作成する。

コード

解説

モジュールのインポート

グラフの設定

図の大きさはfigsize(3,6)で、縦に長い形にしている。

サインポールの作成

サインポールはmatplotlib.patches.polygonで作成。

最初に、図形を表示する位置をリスト内のタプル[(#,#)]で設定。この座標を結ぶ形状が作成される。

patches.Polygon(xy = posi_ao1,color=’blue’)などで図形を作成する。

作成した図形は、ax.add_patch(ao1)などで、figに反映させる。

アニメーションの設定

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

アニメーションとしては、上方向に移動するのみ。

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

initはanimationの開始時に実行されるもので、グラフの初期設定をしている。
set_xticklabelsとset_xticksで軸ラベルと軸メモリを消している。

returnにアニメーションで動かしたいものを記述する。

アニメーションの設定

各図形の位置に+yして上に移動させる。各図形の位置をset_xyを使って更新する。

returnにアニメーションで動かしたいものを記述する。

アニメーションの表示

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

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

コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

参考

https://matplotlib.org/api/_as_gen/matplotlib.patches.Polygon.html

コメント