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

[matplotlib 3D] 32. voxelグラフでハートを表示して回転する
Matplotlibの3Dグラフ機能を使ってボクセルでハート形状を作成し、回転アニメーションを表示する方法を解説。数式を使ったハート形状の表現方法からアニメーション作成まで、具体的なPythonコードとカスタマイズのポイントを紹介しています。
各軸の表示範囲の取得
アニメーションでは表示範囲を変化させることでハートの大きさを変えています。この表示範囲はax.get_xlim()などのメソッドで取得できます。
軸の表示範囲を変化させるための変数
表示範囲の変化について、各軸の下側をbeat_l、上側をbeat_hとして設定しました。このデータは前述の2Dアニメーションと同じ値を使用しています。

[matplotlib animation] 70. ハートの鼓動アニメーション
Pythonの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の3Dグラフ機能を使ってボクセルでハート形状を作成し、回転アニメーションを表示する方法を解説。数式を使ったハート形状の表現方法からアニメーション作成まで、具体的なPythonコードとカスタマイズのポイントを紹介しています。
numpy.tile — NumPy v2.3 Manual
コメント