【发布时间】:2021-11-18 07:27:50
【问题描述】:
我是 matplotlib 新手,正在尝试动画。观看了一些来自 youtube 的教程并在下面创建了代码,这几乎是其中一个教程的复制/粘贴。我期待绘图会不断更新新的数据点,但它没有发生。我添加了打印语句以进行故障排除,发现 xcord 和 ycord 只打印了一次——这意味着似乎根本没有调用 animate 函数。请帮助找出我做错了什么。我在 Spyder 4.1.5 中运行此代码
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
from itertools import count
import random
xcord = []
ycord = [5]
index = count()
xcord.append(next(index))
def animate(i):
xcord.append(next(index))
ycord.append(random.randint(0,5))
print(xcord)
print(ycord)
plt.cla()
plt.plot(xcord,ycord)
fig, ax = plt.subplots(1,1)
print(xcord)
print(ycord)
ani = FuncAnimation(fig,animate,interval=1000)
plt.tight_layout()
plt.show()
【问题讨论】:
-
请参考official reference for a sample of line animation。动画的基本结构是先建立图表,然后在动画函数中更新要绘制的数据。
-
好的,谢谢。关于图表的初始设置,我明白你的观点。但是我从上面的链接中剪切并粘贴了示例,它只是绘制了一个正弦波(我认为是从进行初始化的线开始),但没有发生动画。有什么想法吗?
标签: python matplotlib