[matplotlib animation] 109. バイバインのアニメーション

matplotlib

はじめに

この記事では、Pythonのmatplotlibライブラリを使用して、ドラえもんの「バイバイン」という道具をシミュレートするアニメーションを作成します。バイバインは物体を2倍に増やす道具で、このプログラムでは栗まんじゅうが次々と倍増していく様子を視覚的に表現します。FuncAnimationクラスを活用したアニメーション制作の基本から応用までを段階的に解説していきます。

コード&解説

モジュールのインポートなど

画像の表示のために、OffsetImage, AnnotationBboxを用います。

バージョン

画像を表示する座標の作成

最初に、np.ones((1,1))で1×1の配列を作成し、np.whereでこの配列のインデックスを取得してリストに追加します。

次に、np.tile関数で配列のサイズを倍にします。配列の縦横サイズが同じ場合も異なる場合も、A=np.tile(A,(1,2))とします。このように作成した配列のインデックスをnp.whereで取得し、リストに追加していきます。

リストのサイズは11となり、最後のデータは210 = 1024個の座標を含むリストになります。

画像を図中に挿入する関数

図中に画像を挿入する関数は、下記ページで紹介されているものと同じものを使用しました。

[matplotlib] 3. 画像マーカープロットを使った効果的なデータ可視化
matplotlibを使用して画像をマーカーとしてプロットする方法を解説。通常のデータ可視化に画像アイコンを取り入れることで、より視覚的にインパクトのあるグラフを作成。地図上の位置表示や気象データなど実用例も紹介。

画像の表示

リストの前半部分を図で表示します。使用した画像は下記サイトからダウンロードしたものです。

栗まんじゅうのイラスト
いらすとやは季節のイベント・動物・子供などのかわいいイラストが沢山見つかるフリー素材サイトです。

アニメーションで表示

栗まんじゅうが増殖する様子を、以下のアニメーションで示します。

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

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

参考

栗まんじゅうのイラスト
いらすとやは季節のイベント・動物・子供などのかわいいイラストが沢山見つかるフリー素材サイトです。
numpy.where — NumPy v2.3 Manual

コメント