はじめに
matplotlibのFuncAnimationとmplot3dで球体の下と横のグリッドが動くアニメーションを表示する。
コード&解説
モジュールのインポートなど
バージョン
球面のデータの生成
球面のデータは下記記事と同様にnp.outerを使う方法で作成した。
[matplotlib 3D] 18. 3D surfaceプロットで球を表示
matplotlibのmplot3dをつかって、3Dグラフ上にsurface plotで球を表示する方法について解説する。
3D figureの作成
fig.add_subplot(projection=’3d’)でfigにaxを作成する。
視点、軸ラベル、アスペクト比の設定
ax.view_initで視点の設定をして、ax.set_box_aspect((1,1,1))で1:1:1のアスペクト比の3Dグラフとし、ax.set_xticklabels([])などで軸のラベルを非表示にしている。
最初の図を表示
ax.plot_surface()でx,y,zデータをsurface plotで表示する。
アニメーションの設定
p1[0].remove()ですでにある図を消して、p1[0]= ax.plot_surface()でxデータをずらしながら再描写することでアニメーションとする。
アニメーションの表示
animation.FuncAnimation()で100 frames, 表示間隔 60 msで表示すると以下のようになる。
移動速度を増加させた場合
animation.FuncAnimation()で100 frames, 表示間隔 30 msで表示すると以下のようになる。
スタイルをggplotにした場合
ggplotのスタイルを使用すると以下のようになる。
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)参考
3D surface (colormap) — Matplotlib 3.9.2 documentation
matplotlib.animation.FuncAnimation — Matplotlib 3.9.2 documentation
コメント