[matplotlib animation] 95. 極座標棒グラフのアニメーション

matplotlib

はじめに

極座標棒グラフの値が変化するアニメーションをmatplotlibのFuncAnimationによって作成する。

コード

解説

モジュールのインポート

バージョン

データの生成

N=9として9つの棒を生やす。theta, radii, widthで角度、半径、幅のデータをそれぞれ作成する。

棒グラフの表示

plt.subplots()で極座標グラフを作成するには、subplot_kw={‘projection’: ‘polar’}とする。

棒の高さに応じて色を変える

bar.set_facecolorでそれぞれの棒の色をセットする。

ラベルやグリッドの設定

以下のような図が作成できる。

アニメーション用のデータの作成

半径radiiにsin波の動きを加えたradii_moveを作成する。

アニメーションの設定

ax.cla()で図をクリアしたあとに再度ax.barで棒グラフを描写する。半径をradii_move[:,num]とすることで異なる値を適用していき、アニメーションとする。

アニメーションの表示

FuncAnimationでアニメーションを表示する。frame数を20,intervalを100msとして2秒のアニメーションとする。
HTML(ani.to_html5_video())により、jupyter notebook またはjupyter lab上にアニメーションを表示できる。

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

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

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

参考

Matplotlib logo — Matplotlib 3.3.3 documentation
【Python3入門】*(アスタリスク)1個の機能まとめ
Pythonの*(アスタリスク)は他のプログラミング言語と意味合いが違います。Pythonにポインタはありません。Pythonの*(アスタリスク)にはどんな機能があるのかまとめてみました。*(アスタリスク)1個の機能は大きく分けると5つ1.

コメント