はじめに
この記事では、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)に変更することで逆回転になります。
まとめ
matplotlibのplt.fillと螺旋の式を組み合わせることで、美しい渦巻きアニメーションを作成できます。FuncAnimationを使うことで、動的な視覚効果を実現し、数学的な表現をより直感的に理解することができます。
参考
Fill Spiral — Matplotlib 3.1.2 documentation
matplotlib.animation.FuncAnimation — Matplotlib 3.10.6 documentation
コメント