[matplotlib animation] 28. 回転する円グラフ

matplotlib Animation

はじめに

この記事は、matplotlibのFuncAnimationを使用して円グラフを回転させるアニメーションを作成する方法について説明しています。円グラフを動的に回転させることで、データの視覚化をより魅力的にする手法を紹介しています。

コード

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

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

解説

モジュールのインポート

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

labelでは各データのラベルを設定し、sizesでは円グラフの各セグメントの大きさを定義しています。explodeは円グラフの特定部分を中心から飛び出させる設定で、この例では2番目の要素「Mugichoco」を0.1の距離だけ飛び出させています。

円グラフの表示

円グラフはax.pie()で表示できます。詳細は以下を参照してください。ax.pie()からは、patches、texts、autotextsの3つの要素が返されるため、これらを受け取るために「chocopie, a, b = 」という形で変数を用意しています。

[matplotlib] 23. 円グラフを作成する方法
matplotlibを使った円グラフの作成方法を解説。基本的な円グラフの描画から、ラベル表示、色の設定、複数の円グラフ表示、データの強調表示まで、Pythonでのデータ可視化技術を詳しく紹介します。

アニメーションの設定

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

update関数内では、chocopie, a, b = ax.pie(sizes, explode=explode, labels=labels, autopct=’%1.1f%%’, shadow=True, startangle=4*num)として円グラフをプロットします。startangleが4*numと設定されているので、この値が順次変化することで回転する円グラフのアニメーションが生成されます。

各フレームのstartangleの値は、ax.set_title(“startangle = “+str(4 * num)[:4])によってグラフのタイトルに表示されます。

アニメーションの表示

FuncAnimationでアニメーションを表示します。updateを91ステップ実行してアニメーションを生成します。intervalは100msに設定されているため、約9秒のアニメーションとなります。fargsには、update関数に渡す変数を[chocopie, a, b]のように指定します。

jupyter notebook上では、HTML(ani.to_html5_video())を使用してアニメーションを表示できます。

アニメーションの保存

ani.save(‘rotate_pie.mp4’, writer=”ffmpeg”, dpi=dpi)を使用してアニメーションをMP4ファイルとして保存できます。dpiパラメータを調整することで、保存する動画の解像度を指定できます。

まとめ

matplotlibのFuncAnimationを活用することで、静的な円グラフに動きを加え、回転するアニメーションを実装できます。このテクニックはプレゼンテーションやデータ可視化をより印象的にしたい場合に役立ちます。

参考

matplotlib.axes.Axes.pie — Matplotlib 3.10.6 documentation
matplotlib.animation.FuncAnimation — Matplotlib 3.10.6 documentation

コメント