[matplotlib animation] 70. ハートの鼓動アニメーション

matplotlib Animation

はじめに

この記事ではPythonのmatplotlibライブラリを使用して、ハート形が拡大・縮小する鼓動のようなアニメーションを作成する方法を解説しています。FuncAnimationクラスを活用して、フレームごとにハートの大きさを変化させることでアニメーション効果を実現しています。

コード

解説

モジュールのインポート

データの作成

ハートの鼓動表現のために、サイズが周期的に変化するデータを作成します。視覚的には以下のように表示されます。

np.tile()による配列の繰り返し

np.tile(beat,10)を使用すると、beat配列が10回繰り返された新しい配列を生成できます。

ハートの表示

marker=’$\heartsuit$’を使用してハートマークを表示できます。ハートのfacecolorを設定しても内部が塗りつぶされないため、マーカーのサイズ(ms=80)とマーカーの線幅(mew=32)を大きく設定することでハート形状を実現しました。

アニメーションの設定

set_markersizeでマーカーの大きさをbeat_tileに従って変化させます。

BPMの計算と表示

アニメーションの表示

HTML(ani.to_html5_video())により、jupyter notebook またはjupyter lab上にアニメーションを表示できます。

BPM = 60

BPM = 160

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

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

まとめ

matplotlibのFuncAnimationを使うことで、ハートの鼓動のような視覚的に魅力的なアニメーションを簡単に作成できることがわかりました。数式でハート形を表現し、それを周期的に拡大縮小させることで鼓動の効果を生み出しています。このテクニックは他の形状や動きにも応用可能で、データの視覚化をより魅力的にするのに役立ちます。

参考

matplotlib入門 散布図の作成 | Python学習講座
numpy.tile — NumPy v2.3 Manual
matplotlib.animation.FuncAnimation — Matplotlib 3.10.6 documentation

コメント