はじめに
matplotlibのFuncAnimationとmplot3dを使って3Dハートの鼓動アニメーションを作成する方法を解説します。
コード
解説
モジュールのインポート
バージョン
ボクセルによるハートの表示
ボクセルによるハートの作成は下記記事と同様に行いました。

[matplotlib 3D] 32. voxelグラフでハートを表示して回転する
matplotlib mplot3d voxelグラフでハート♡を表示する。回転アニメーションも表示する。
各軸の表示範囲の取得
アニメーションでは表示範囲を変化させることでハートの大きさを変えています。この表示範囲はax.get_xlim()などのメソッドで取得できます。
軸の表示範囲を変化させるための変数
表示範囲の変化について、各軸の下側をbeat_l、上側をbeat_hとして設定しました。このデータは前述の2Dアニメーションと同じ値を使用しています。

[matplotlib animation] 70. ハートの鼓動アニメーション
matplotlibのFuncAnimationでハートが鼓動するアニメーションを表示する。
図示すると下記のようになります。


3Dハートの表示
fig.add_subplot(projection=’3d’)を使用して3Dグラフを作成します。ハートの表示にはax.voxels()メソッドを使い、ax.axis(‘off’)で座標軸を非表示にできます。
アニメーションの設定
update関数内で ax.set_xlim などを使用して軸の表示範囲を調整できます。
BPMの計算と表示
アニメーションの表示
HTML(ani.to_html5_video())
を使用すると、Jupyter NotebookやJupyter Lab上にアニメーションを直接表示できます。
また、ani.save('ファイル名', writer="ffmpeg", dpi=100)
でアニメーションをMP4形式で保存することが可能です。
参考

[matplotlib 3D] 32. voxelグラフでハートを表示して回転する
matplotlib mplot3d voxelグラフでハート♡を表示する。回転アニメーションも表示する。
numpy.tile — NumPy v2.3 Manual
コメント