[matplotlib 3D] 14. 3Dグラフの回転アニメーション

matplotlib 3D
スポンサーリンク

3Dグラフの回転アニメーション

コード

だとjupyter上でうまくうごかないので、FuncAnimationを使って書き改めた。

コード(FuncAnimation)

でできるアニメーション。

解説

X, Y, Z = axes3d.get_test_data(0.1)

テストデータの取得。

def init():
ax.plot_wireframe(X, Y, Z, rstride=5, cstride=5)
return fig,

最初に表示するグラフの設定。

def animate(i):
ax.view_init(elev=30., azim=3.6*i)
return fig,

視点を変える設定。
elevはElevation viewing angle の略で、視点の高さの設定。(default=30)
azimはAzimuthal viewing angleの略で、方位角の設定。(default=-60)[1]

ani = animation.FuncAnimation(fig, animate, init_func=init,
frames=100, interval=100, blit=True)

figは、figureオブジェクトで、このfigにアニメーションを表示する。
animateは、アニメーションに関する関数、ここでは3.6°ずつ横回転していくようにしてある。
init_funcは、figの初期化の設定。
frameはアニメーション全体のコマ数。
intervalは表示間隔で100[ms]で100frameなので10[s]のアニメーションとなる。
blitとは、Trueにするとアニメーションが最適化されて、カクカクしなくなる。[2]

HTML(ani.to_html5_video())

aniをHTML5のビデオにして出力。

blit=Falseの場合

画質が良くなるが、ファイルが重い。(1.1 M)

軸とグリッドを消してデータのみ表示

ax.grid(False)
ax.set_axis_off()

grid(False)でグリッドが消え、set_axis_off()で軸が消える。

参考

  1. Matplotlib > view_init(elev=None, azim=None)のデフォルト値 … – Qiita
  2. Bit Block Transfer – ウィキペディア

コメント