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

matplotlib 3D

はじめに

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

コード

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

解説

モジュールのインポート

データの生成

データは下記記事と同じで、グルグルと回転するデータを用いる。上から下に表示させるために[::-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上にアニメーションを表示できる。

参考

Parametric Curve — Matplotlib 3.1.1 documentation
matplotlib.axes.Axes.set_alpha — Matplotlib 3.1.1 documentation
mpl_toolkits.mplot3d.art3d.Line3D — Matplotlib 3.1.1 documentation

コメント