はじめに
グラフ上をマーカーが移動するアニメーションでその軌跡としてマーカーの残像を表示する方法について解説する。
コード
解説
モジュールのインポート
データの生成
データは下記記事と同じで、らせんのデータを用いる。外から内に表示させるために[::-1]でデータを逆順に変換している。
データをアスペクト比を揃えてプロットし軸範囲を取得
らせんデータをax.axis(‘equal’)でプロットし、グラフを表示させる。表示させたグラフから、ax.get_xlimなどで軸範囲の情報を抜き出す。この軸範囲の情報は後ほどアニメーション表示させるグラフに用いる。
figの作成と空データのプロット
3Dグラフを作成して空のデータのプロットを5つプロットしておく。このプロットにデータを流し込むことでアニメーション表示させる。
さきほど取得した軸範囲をax.set(xlim=x_lim, ylim=y_lim)でアニメーション表示させるグラフに適用する。
アニメーションの初期設定
returnでアニメーション表示するplotを返しておく。
アニメーションの設定
先頭のプロットから最後のプロットにかけて透明度を変化させて、流れるようなアニメーションを作成する。x,yの位置の設定はset_dataで行い、透明度の設定はset_alphaにより行う。こちらもreturnでアニメーション表示するplotを返す必要がある。
アニメーションの表示
FuncAnimation でアニメーションを表示する。
96はupdate(i)のアニメーション関数を0 〜95まで実行する意味となる。intervalはupdate関数の実行間隔であるため、100 msごとにプロットが変化していくアニメーションが得られる。HTML(ani.to_html5_video())とすればjupyter notebook上にアニメーションを表示できる。
ファイルの保存はani.save(‘kisekianim2d.mp4’, writer=”ffmpeg”,dpi=100)のようにすることで MP4ファイルを保存することができる。
コメント