[matplotlib animation] 58. 螺旋にplt.fillを適用して渦巻きアニメーション

matplotlib Animation

はじめに

この記事では、matplotlibを使って渦巻き(螺旋)のアニメーションを作成する方法について解説します。plt.fillを使って螺旋の内側を塗りつぶし、FuncAnimationを利用してアニメーション化する手法を紹介します。

コード

解説

モジュールのインポート

螺旋データの生成

螺旋データの生成については下記で説明しました。

[matplotlib] 45. fillでプロットの内側を塗りつぶして表示
matplotlibのfill関数を使ってプロットの内側を塗りつぶす方法を解説。複数の色での塗りつぶし、透明度の設定、領域の強調表示など、データの視覚化をより効果的に行うためのテクニックを紹介します。

アニメーションの設定

螺旋のfillをいれるための空のリストを作成します。

リスト内にfillのプロットがある場合は、それを消去します。

回転の設定を行います。アニメーションは10度ずつ変化させ、cos関数とsin関数を使って各データポイントを原点を中心に回転させます。

ax.fillを使って各色の螺旋をプロットし、それらをリストに格納します。アニメーションは、このリスト内のプロットが順次入れ替わることで生成されます。

アニメーションの表示

fillする幅を広めたアニメーション

dt1 の値を dt1 + np.pi/4.0 から dt1 + np.pi/2.0 に変更することで、より幅広い螺旋アニメーションを作成できます。

逆回転のアニメーション

update関数内のdegnum = np.deg2rad(10num)をdegnum = np.deg2rad(-10num)に変更することで逆回転になります。

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

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

まとめ

matplotlibのplt.fillと螺旋の式を組み合わせることで、美しい渦巻きアニメーションを作成できます。FuncAnimationを使うことで、動的な視覚効果を実現し、数学的な表現をより直感的に理解することができます。

参考

Fill Spiral — Matplotlib 3.1.2 documentation
matplotlib.animation.FuncAnimation — Matplotlib 3.10.6 documentation

コメント