[matplotlib animation] 33. トーラス結び目アニメーション

matplotlib Animation

トーラス結び目の結び目が変化するアニメーション

コード

解説

モジュールのインポート

figの作成

GridSpecで複数グラフを作成する。hspaceはグラフ間の縦方向の間隔で、wspaceは横方向の間隔となっている。

ax1, ax2, ax3のグラフをそれぞれ作成する。ここでは、異なる視点のグラフを作成するので、sharex, shareyを設定することで面倒な軸の設定をできるだけ省略する。

トーラス結び目の設定

[matplotlib 3D] 49.トーラス結び目(torus knot)
matplotlib mplot3dによるトーラス結び目

トーラス結び目は上を参照。
ここでは、小円方向の回転数(p)を変化させるアニメーションを作成するので、p_をlinspaceで作成しておく。

軸の設定

ax2,ax3のx軸、y軸にはax1の設定が反映される。

視点の設定

ax1は真上からみた図。
ax2は真横からみた図とする。

はじめに表示する図の設定

アニメーションで表示するには、[]でくくっておく必要がある。

アニメーションの設定

アニメーションでは古いグラフを消して新しいグラフを表示するという動作を繰り返すので、.pop().remove()で現在表示されている図を消す。

ここでは、小円方向の回転数(p_)を変化させるアニメーションを作成する。
X,Y,Zデータを変化するp_で生成して、そのデータを順次プロットしていく。

アニメーションの表示

FuncAnimationでanimationの表示する。updateを101step実行してアニメーションとする。intervalは200 ms なので20秒のアニメーションとなる。
HTML(ani.to_html5_video())でjupyter notebook上にアニメーションを表示できる。

参考

数学デッサン教室 ― 描いて楽しむ数学のかたち | 瑞慶山 香佳 |本 | 通販 | Amazon
Amazonで瑞慶山 香佳の数学デッサン教室 ― 描いて楽しむ数学のかたち。アマゾンならポイント還元本が多数。瑞慶山 香佳作品ほか、お急ぎ便対象商品は当日お届けも可能。また数学デッサン教室 ― 描いて楽しむ数学のかたちもアマゾン配送商品なら通常配送無料。
matplotlib.animation.FuncAnimation — Matplotlib 3.1.1 documentation

コメント