[matplotlib animation] 61. 3Dグラフ上でアニメーションの軌跡としてマーカーの残像を表示

matplotlib 3D

はじめに

matplotlib, mplot3dの3Dグラフ上をマーカーが移動するアニメーションでその軌跡としてマーカーの残像を表示する方法について解説する。

コード

解説

モジュールのインポート

バージョン

データの生成

データは下記記事と同じで、グルグルと回転するデータを用いる。上から下に表示させるために[::-1]でデータを逆順に変換している。

[matplotlib 3D] 7.3D線グラフ(媒介変数曲線)
matplotlibのmplot3dで3D線グラフを表示する方法について説明する。

figの作成と空データのプロット

3Dグラフを作成して空のデータの3Dプロットを5つプロットしておく。このプロットにデータを流し込みアニメーション表示させる。
各軸の表示範囲を調整して、プロットが見えるようにしておく。

アニメーションの初期設定

returnでアニメーション表示するplotを返しておく。

アニメーションの設定

先頭のプロットから最後のプロットにかけて透明度を変化させて、流れるようなアニメーションを作成する。x,yの位置の設定はset_dataで行い、zの位置の設定はset_3d_propertiesで行う。透明度の設定はset_alphaにより行う。こちらもreturnでアニメーションする変数を返す。

アニメーションの表示

FuncAnimation でアニメーションを表示する。
96はupdate(i)のアニメーション関数を0 〜95まで実行する意味となる。intervalはupdate関数の実行間隔であるため、100 msごとにプロットが変化していくアニメーションが得られる。HTML(ani.to_html5_video())とすればjupyter notebook上にアニメーションを表示できる。

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

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

参考

https://matplotlib.org/gallery/mplot3d/lines3d.html#sphx-glr-gallery-mplot3d-lines3d-py
https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.set_alpha.html?highlight=set_alpha#matplotlib.axes.Axes.set_alpha
https://matplotlib.org/api/_as_gen/mpl_toolkits.mplot3d.art3d.Line3D.html?highlight=set_3d%20pro#mpl_toolkits.mplot3d.art3d.Line3D.set_3d_properties

コメント