FuncAnimation仅显示一帧

时间:2019-06-27 14:28:48

标签: python matplotlib

我正在尝试使用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()

0 个答案:

没有答案