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

matplotlib Animation

はじめに

matplotlibのplt.fillと螺旋の式を用いて、渦巻きのアニメーションをFuncAnimationで表示する方法について解説する。

コード

解説

モジュールのインポート

螺旋データの生成

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

[matplotlib] 45. fillでプロットの内側を塗りつぶして表示
matplotlibのfillでプロットの内側を塗りつぶす方法について説明する。

アニメーションの設定

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

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

回転の設定をする。10度ずつ変化するアニメーションとする。cos, sinを用いて各データを原点を中心に回転する。

ax.fillで各色の螺旋をplotして、それらをリストにいれる。このリスト内のプロットが順次入れ替わることでアニメーションとなる。

アニメーションの表示

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

dt1 = dt1 + np.pi/4.0 などを dt1 = dt1 + np.pi/2.0 にすることで幅広螺旋アニメーションとなる。

逆回転のアニメーション

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

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

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

参考

Fill Spiral — Matplotlib 3.1.2 documentation
https://matplotlib.org/api/_as_gen/matplotlib.animation.FuncAnimation.html

コメント