[matplotlib animation] 29. 飛び出す円グラフ

matplotlib Animation
スポンサーリンク
スポンサーリンク

matplotlib FuncAnimationによる飛び出す円グラフのアニメーション

コード

解説

モジュールのインポート

ラベルとデータと飛び出しの設定

labelで各データのラベルの設定をし、sizesで円グラフの大きさを設定している。explodeは円グラフを飛び出させるための設定で、初期設定として、すべて飛び出さないように(0,0,0,0)と設定した。

円グラフの表示

円グラフはax.pie()で表示できる。詳細は以下を参照。
ax.pie()からは、patches, texts,autotextsの3つが返ってくるので、これを受けるために、chocopie,a,b, = としている。

[matplotlibの使い方] 23. 円グラフ(Pie chart)
matplotlibで円グラフを表示する方法

アニメーションの設定

アニメーションでは古いグラフを消して新しいグラフを表示するという動作を繰り返すので、ax.cla()で現在表示されているグラフを消している。

update関数のなかで、 chocopie,a,b, = ax.pie(sizes, explode=explode,・・・)と、円グラフをプロットする。ここでは、explodeのmugichocoの部分を0から0.25, 0.25から0へと直線的に変化させているので、円グラフのmugichoco部分が飛び出して戻る円グラフのアニメーションが得られる。

そのときそのときの、explodeの値を、ax.set_title(“explode = “+str(0.01*num)[:4])とすることで、タイトルに表示している。

アニメーションの表示

FuncAnimationでanimationの表示する。updateを51step実行してアニメーションとする。intervalは100 ms なので5秒ちょっとのアニメーションとなる。fargsには、update関数に渡す変数を[chocopie, a,b]のように記述する。
HTML(ani.to_html5_video())でjupyter notebook上にアニメーションを表示できる。

アニメーションの保存

ani.save(‘explode_pie.mp4’, writer=”ffmpeg”,dpi=dpi)でアニメーションを保存することができる。dpiを設定することで指定の解像度での保存が可能となる。

スポンサーリンク

参考

matplotlib.axes.Axes.pie — Matplotlib 3.1.1 documentation
matplotlib.animation.FuncAnimation — Matplotlib 3.1.1 documentation
スポンサーリンク
matplotlib Animationpython
スポンサーリンク
この記事をシェアする
sabopy.comをフォローする
スポンサーリンク
サボテンパイソン

コメント