次のプログラムは3次元プロットを視点を変えて見る動画を作成するものである。
animateという関数を用意し(名前は別でも良い)、animationというライブラリ関数に与える。
# -*- coding: utf-8 -* from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import numpy as np from matplotlib import animation def animate(azim): elev = 30.0 dumm, azim = divmod(azim+1.0, 360.0) ax.view_init(elev, azim) # 縦方向の角度と水平方向の角度を与える fig.canvas.draw() return ax, # start of main plt.rcParams['font.size'] = 16 fig = plt.figure() ax = Axes3D(fig) a = 10 b = 10 X = np.array([[-a,a],[-a,a]]) # 縦に見て(x,y,z)点を与える。 Y = np.array([[-a,-a],[a,a]]) Z = np.array([[a,a],[-a,-a]]) X1 = np.array([[-b,b],[-b,b]]) # 縦に見て(x,y,z)点を与える。 Y1 = np.array([[-a,-a],[a,a]]) Z1 = np.array([[a,-a],[a,-a]]) ax.plot_surface(X, Y, Z, color='#0000ff', alpha=0.3) ax.plot_surface(X1, Y1, Z1, color='#ffff00', alpha=0.3) # instantiate the animator. anim = animation.FuncAnimation(fig, animate, frames=500, interval=10, blit=True) #ファイルに書き出すには次のどちらか(ムービービューワによっては実行できないコーデックがある) #anim.save('animTest.mp4', fps=15, extra_args=['-vcodec', 'libx264']) # good for chrome anim.save('test2.mp4', fps=15, extra_args=['-vcodec', 'libxvid']) # good for windows media player but no good for chrome plt.show()