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

[matplotlib 3D] 32. voxelグラフでハートを表示して回転する
matplotlib mplot3d voxelグラフでハート♡を表示する。回転アニメーションも表示する。
各軸の表示範囲の取得
アニメーションは表示範囲を変化させることで大きさを変えるので、表示範囲をax.get_xlim()などで取得する。
軸の表示範囲を変化させるための変数
各軸の下側の表示範囲の変化をbeat_lとし、上側の表示範囲の変化をbeat_hとした。このデータは下記記事の2Dのアニメーションと同様のデータとなっている。

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


3Dハートの表示
ax = 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形式で保存することができる。
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)参考

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