はじめに
この記事では、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のFuncAnimationを活用することで、極座標棒グラフに動きを持たせることができます。この技術は科学データの時間変化や周期的なパターンを視覚的に表現するのに非常に有効です。基本的なPythonの知識と本記事のコード例を参考に、独自のアニメーショングラフを作成してみましょう。
参考

コメント