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

matplotlib 3D

はじめに

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形式で保存することが可能です。

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

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

参考

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

コメント