pcまたはpciを使用して2dでいくつかの波を進化させてGIFを保存しようとしています(サーフェスまたはワイヤフレームも使用できます)。pcolormeshを効率的にアニメーション化する
これは、これまでのところ、私のaproachされています: は極座標でプロットするquadmeshを設定します。
from matplotlib import pyplot
from matplotlib.animation import FuncAnimation as FuncAnimation
pi=np.pi
rmax=6.
r=2*np.linspace(0,np.sqrt(rmax*.5),100)**2
phi=np.linspace(0,2*pi,80)
R, P = np.meshgrid(r, phi)
X, Y = R*np.cos(P), R*np.sin(P)
は、アニメーションのための数字と機能を設定します。 カウントは私が持っているフレームの量です。 Zは、プロットしたい値を持つcount * 2次元配列です。 (それはシリーズのようないくつかのフーリエ変換の合計を持っている)
fig, ax = pyplot.subplots()
def anim_I(count,r,phi):
anim=np.zeros((count,len(phi), len(r)))
for i in range(count):
anim[i,:,:]=coef_transf(final_coefs[i,:,:,:,0],r,phi)**2
return anim
Z=anim_I(count,r,phi)
def animate(i):
pyplot.title('Time: %s'%time[i])
#This is where new data is inserted into the plot.
plot=ax.pcolormesh(X, Y,Z[i,:,:],cmap=pyplot.get_cmap('viridis'),vmin=0., vmax=15.)
return plot,
ax.pcolormesh(X, Y,Z[0,:,:],cmap=pyplot.get_cmap('viridis'),vmin=0., vmax=15.)
pyplot.colorbar()
anim = FuncAnimation(fig, animate, frames = range(0,count,7), blit = False)
私は本当に生きてそれを参照してくださいする必要はありませんので、私はちょうどGIFを保存します。
anim.save('%d_%d_%d-%d.%d.%d-2dgif.gif' %(localtime()[0:6]), writer='imagemagick')
pyplot.close()
これは動作しますが、これは100フレームものgifを作るのに1時間かかることがあります。
これを行う正しい方法が何であるかを知ることはできません。そのため、使用することができます。
私はこの点についてもう1つの記事を見ましたが、コードがうまく動作しないか、まったく同じように動作しませんでした。