[matplotlib animation] 87. 円の多角形近似のresolution変化アニメーション

matplotlib

はじめに

matplotlibのFuncAnimationでpatches.CirclePolygonのresolutionを変化させたときの多角形の変化をアニメーションで表示する。

コード

解説

モジュールのインポート

バージョン

図の作成

subplot_kw={‘aspect’: ‘equal’}で縦横の比率の等しい図を作成できる。

アニメーション関数

空のリストarttistsを作成し、この中にCirclePolygonをax.add_artist(cp)として追加する。
arttistsの長さが1以上のとき、リスト内の要素を消去し、常に新しいCirclePolygonが表示されるようにする。
CirclePolygonはxy=(0,0)の位置に半径5の円のサイズで resolutionをnum+3のよう変化させて表示する。
ax.set_title(“resolution=”+str(num+3)+””)でタイトルにresolutionの値を表示する。

アニメーションの表示

FuncAnimationでアニメーションを表示する。frame数を28、intervalを200msとし、6秒くらいのアニメーションとする。
HTML(ani.to_html5_video())により、jupyter notebook またはjupyter lab上にアニメーションを表示できる。

ani.save(‘ファイル名’, writer=”ffmpeg”,dpi=120)でアニメーションをMP4形式で保存することができる。

古いCirclePolygonを消さないで全て表示するアニメーション

ax.set_axisbelow(True)でgrid線を最下層に表示するようにできる。

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

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

参考

https://matplotlib.org/api/_as_gen/matplotlib.patches.CirclePolygon.html#matplotlib.patches.CirclePolygon

コメント