如何解决matplotlib动画中生成的索引错误



我正在matplotlib中学习动画工具,但在下面的代码中遇到了错误。

import matplotlib.pyplot as plt 
import matplotlib.animation as animation 
import numpy as np
x = np.array([1,2,4,6,4])
y = np.array([2,5,4,7,9])
x_points, y_points = [],[]
fig, ax = plt.subplots()
xdata, ydata = [],[]
line, = plt.plot([],[],'ro')
def init():
line.set_data([],[])
return line, 
def animate(i):
x_points.append(x[i])
y_points.append(y[i])
line.set_data(x_points,y_points)
return line 
ani = animation.FuncAnimation(fig,animate,init_func=init,
frames = 200,interval=500,blit=False)
plt.show()

我得到以下错误。我该如何解决?

IndexError: index 5 is out of bounds for axis 0 with size 5

对于列表xy,您有太多的帧(200(。由于xy的长度都是5,因此可以将frames参数设置为5:的最大值

ani = animation.FuncAnimation(fig, animate, init_func=init, frames=5, interval=500, blit=False)

为了详细说明,每个帧使用xy列表的一个索引。

最新更新