我正在用Python编写一个简短的脚本,该脚本应该绘制一系列分散的笛卡尔点,一次作为一个动画(即一帧是一个点,下一帧是另一个)。我正在使用matplotlib。
我的程序当前可以正确绘制,但是它会返回包含所有点的静态图,因此动画函数本身一定存在问题。
当我现在运行代码时,尽管返回了绘图,但仍收到AttributeError:'PathCollection'对象没有属性'set_data'。我尝试调整一些小东西,但通常该错误消息保持不变。预先谢谢你!
import matplotlib
from matplotlib import pyplot as plt
from matplotlib import animation
import numpy as np
pole_list = [(1,2), (2,3), (3,3), (3,2), (3,1), (4,1), (3,1)] #arbitrary list of points
fig, ax = plt.subplots(1,1)
x_val = [x[0] for x in pole_list]
y_val = [x[1] for x in pole_list]
scatterplot = ax.scatter(x_val, y_val)
print(x_val, y_val)
def init():
scatterplot.set_data([], [])
return scatterplot,
def animate(i, x_val, y_val):
scatterplot.set_data(x_val, y_val)
return scatterplot,
animate = animation.FuncAnimation(fig, animate, fargs=(x_val,y_val), init_func=init, frames=8, interval=20, blit = True)
plt.show()