はじめに
この記事では、matplotlibのFuncAnimationを使用して、ベクトル場を表示するquiver関数によるアニメーションの作成方法を解説します。流体の流れや電場・磁場などのベクトル場をダイナミックに可視化する方法を学びます。
コード
解説
モジュールのインポート
バージョン
データの生成
ベクトルの始点と向きのデータを作成します。
ベクトルデータの表示
ax.quiver(x, y, u, v)により、ベクトルデータを表示できます。

三角波の生成
ベクトルの向きを変えるデータとして、三角波を用います。

アニメーションの表示
ベクトルのプロット(q)を表示し、q.set_UVC(u,v)によってデータを更新してアニメーション化します。FuncAnimationを使用してアニメーションを表示します。frame数はlen(shift_v)=41、intervalは100msに設定して4秒のアニメーションを作成します。
HTML(ani.to_html5_video())
を実行することで、jupyter notebookまたはjupyter lab上にアニメーションを直接表示できます。
ani.save(‘ファイル名’, writer=”ffmpeg”, dpi=100)を使用して、アニメーションをMP4形式で保存できます。
ベクトルの動きをsin波とした場合

まとめ
matplotlibのquiver関数とFuncAnimationを組み合わせることで、動的なベクトル場の可視化が可能になります。この技術は流体力学、電磁気学、気象学など様々な分野で活用でき、複雑な物理現象をわかりやすく表現するのに役立ちます。
参考
matplotlib.quiver.Quiver — Matplotlib 3.10.6 documentation
コメント