[matplotlib animation] 95. 極座標棒グラフのアニメーション

matplotlib

はじめに

この記事では、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の知識と本記事のコード例を参考に、独自のアニメーショングラフを作成してみましょう。

参考

Matplotlib logo — Matplotlib 3.3.3 documentation
【Python3入門】*(アスタリスク)1個の機能まとめ
Pythonの*(アスタリスク)は他のプログラミング言語と意味合いが違います。Pythonにポインタはありません。Pythonの*(アスタリスク)にはどんな機能があるのかまとめてみました。*(アスタリスク)1個の機能は大きく分けると5つ1.

コメント