我正在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
对于列表x
和y
,您有太多的帧(200
(。由于x
和y
的长度都是5
,因此可以将frames
参数设置为5
:的最大值
ani = animation.FuncAnimation(fig, animate, init_func=init, frames=5, interval=500, blit=False)
为了详细说明,每个帧使用x
和y
列表的一个索引。