はじめに
この記事ではmatplotlibのFuncAnimationを使用して、円グラフの一部が飛び出すアニメーションを作成する方法について解説しています。matplotlibのpie関数で円グラフを作成し、特定の部分を強調表示するために飛び出させるアニメーション効果を実装する手順が示されています。
コード
解説
モジュールのインポート
ラベルとデータと飛び出しの設定
labelで各データのラベルを設定し、sizesで円グラフの各部分の大きさを指定しています。explodeは円グラフの特定部分を飛び出させるためのパラメータで、初期状態ではすべての部分が飛び出さないよう(0,0,0,0)と設定しました。
円グラフの表示
円グラフはax.pie()で表示できます。詳細は以下を参照してください。ax.pie()は patches、texts、autotexts の3つの値を返すため、これらを受け取るために chocopie, a, b = という形式で記述しています。

アニメーションの設定
アニメーションは古いグラフを消して新しいグラフを表示する動作を繰り返すため、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でアニメーションを表示します。updateを51ステップ実行してアニメーションを生成します。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を使った円グラフアニメーションの作成方法を学びました。FuncAnimationを活用することで、データの特定部分を視覚的に強調する動的な表現が可能になります。この技術はプレゼンテーションやデータ分析の場面で効果的に活用できるでしょう。
コメント