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()で軸が消える。
コメント