はじめに
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グラフのアニメーション
コメント