[matplotlib animation] 71. 3D heartbeatアニメーション

matplotlib 3D

はじめに

matplotlibのFuncAnimationでmplot3dのvoxelで作成した3Dハートの鼓動アニメーションを表示する。

コード

コードをダウンロード(.pyファイル)コードをダウンロード(.ipynbファイル)

解説

モジュールのインポート

ボクセルによるハートの表示

ボクセルによるハートの作成は下記記事と同様に行った。

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

各軸の表示範囲の取得

アニメーションは表示範囲を変化させることで大きさを変えるので、表示範囲をax.get_xlim()などで取得する。

軸の表示範囲を変化させるための変数

各軸の下側の表示範囲の変化をbeat_lとし、上側の表示範囲の変化をbeat_hとした。このデータは下記記事の2Dのアニメーションと同様のデータとなっている。

[matplotlib animation] 70. ハートの鼓動アニメーション
matplotlibのFuncAnimationでハートが鼓動するアニメーションを表示する。

図示すると下記のようになる。

3Dハートの表示

ax = fig.gca(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 v1.17 Manual

コメント