はじめに
この記事は、matplotlibのFuncAnimationを使用して円グラフを回転させるアニメーションを作成する方法について説明しています。円グラフを動的に回転させることで、データの視覚化をより魅力的にする手法を紹介しています。
コード
解説
モジュールのインポート
ラベルとデータと飛び出しの設定
labelでは各データのラベルを設定し、sizesでは円グラフの各セグメントの大きさを定義しています。explodeは円グラフの特定部分を中心から飛び出させる設定で、この例では2番目の要素「Mugichoco」を0.1の距離だけ飛び出させています。
円グラフの表示
円グラフはax.pie()で表示できます。詳細は以下を参照してください。ax.pie()からは、patches、texts、autotextsの3つの要素が返されるため、これらを受け取るために「chocopie, a, b = 」という形で変数を用意しています。

アニメーションの設定
アニメーションでは、古いグラフを消して新しいグラフを表示する動作を繰り返すため、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を活用することで、静的な円グラフに動きを加え、回転するアニメーションを実装できます。このテクニックはプレゼンテーションやデータ可視化をより印象的にしたい場合に役立ちます。
コメント