[matplotlib animation] 26. ピラミッド建設

matplotlib 3D

はじめに

matplotlib FuncAnimationによるピラミッドの建設アニメーションについて解説する。

コード

解説

モジュールのインポート

グラフの設定

図の大きさはfigsize(8,6)と、少し大きくしている。

ピラミッドの作成

ピラミッドはボクセルで↓と同様に作成。

[matplotlib 3D] 46.ボクセルピラミッド(Voxel Pyramid)
matplotlib mplot3dでvoxelによるピラミッド

アニメーションの設定

アニメーション表示するための変数の設定

アニメーションとしては、下方向に移動するだけだが、各zの位置のボクセルを個別に動かす必要があるため、各層のボクセルに対して変数を設定する。

np.full()は、np.full(10,-1)のようにすると、-1を10個もつ配列が生成する。

np.concatenate()は配列を結合するメソッドで、shift_*の配列の大きさは100で揃えている。

アニメーションの設定

ax.cla()で古いボクセルグラフを消去する。
その際、ラベルも消えてしまうので、毎回ax.set_xlabel()などでラベル名を設定。

shift_*を各層のボクセルに反映させて、ボクセルを下に移動するアニメーションとする。

アニメーションの表示

intervalはアニメーションの各画像が切り替わる間隔の設定で単位はms、
framesはupdate関数を実行される回数で、interval*frames=10000[ms]なので、10秒のアニメーションとなる。

HTML(ani.to_html5_video())とすればjupyter notebook上にアニメーションを表示できる。

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

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

参考

[matplotlib animation] 24. Voxel アニメーション
matplotlib FuncAnimationによるVoxelグラフのアニメーション

コメント