我在matplotlib中有一个动画循环,我想冻结动画的最后一次迭代。我正在使用带有条件的pause
函数来检查上一次迭代。但是,在最后一次迭代中,显示的是前一帧,而不是最后一帧。在
下面是一个例子:
import numpy as np
import matplotlib.pyplot as plt
fig,ax = plt.subplots(1,1)
x = np.linspace(0, 6.28, 401)
freqs = np.arange(5)
for f in freqs:
print f
ax.plot(x, np.sin(f*x))
ax.set_title('$\sin(%d x)$'%f)
if f < freqs[-1]:
plt.pause(1)
ax.cla()
else:
print "hi"
plt.show() # Fails: shows frame with `f==3`.
打印:
^{pr2}$但是,最后一帧(带有f==4
)从未显示。动画冻结标题为“sin(3x)”,以及f==3
的相应绘图数据,而不是4。在
有没有一种“适当”的方法来保持最后一帧?例如,plt.pause(10000)
可以工作,但看起来像是黑客。在
我总是觉得先设置好情节,然后画出来,然后开始动画片。在
相关问题 更多 >
编程相关推荐