我正在尝试使用FuncAnimation,但遇到的问题是仅显示单个帧后就会停止。
此问题之前已发布在StackOverflow上,
Python Matplotlib FuncAnimation only draws one frame
FuncAnimation printing first image only
但是,这里的解决方案-提供对动画对象的引用-在我的情况下不起作用,并且在两种情况下,当我绘制它们时都会留下空白图。
举个例子,我希望这段代码取自 https://riptutorial.com/matplotlib/example/23558/basic-animation-with-funcanimation 为绘制正弦曲线的红色粒子设置动画。
但是,在我的情况下,红色粒子卡在t = 0处。运行下面的代码后,number_of_calls已增加到1,因此animate()仅被调用了一次。作为参考,我使用的是Python 3.6.5。
任何帮助将不胜感激!
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
TWOPI = 2*np.pi
fig, ax = plt.subplots()
t = np.arange(0.0, TWOPI, 0.001)
s = np.sin(t)
l = plt.plot(t, s)
ax = plt.axis([0,TWOPI,-1,1])
redDot, = plt.plot([0], [np.sin(0)], 'ro')
number_of_calls=0
def animate(i):
global number_of_calls
redDot.set_data(i, np.sin(i))
number_of_calls+=1
return redDot,
# create animation using the animate() function
myAnimation = FuncAnimation(fig, animate, frames=np.arange(0.0, TWOPI, 0.1), \
interval=10, blit=True, repeat=True)
plt.show()