使用以下代码,我试图迭代地将点添加到图形中。由于我在OSX上,我没有使用blit = True。我可以在原始图上得到一个点,并且可以看到我的更新函数的输出(从发生器馈送)。我还可以看到我的坐标被附加到要绘制的坐标数组。在将生成/更新的点可视化时我缺少什么?
由data_gen()调用的stromboli函数返回一对坐标。对于所有意图和目的,它可以是随机的x,y。
#Visualization Imports
import matplotlib.pyplot as plt
import matplotlib.animation as animation
def update(coord):
print coord[0], coord[1]
pt.set_xdata(numpy.append(pt.get_xdata(),coord[0]))
pt.set_ydata(numpy.append(pt.get_ydata(),coord[1]))
print pt.get_xdata()
return pt,
def data_gen():
while True:
yield stromboli(args.velocity)
#Visualization
fig = plt.figure()
ax = plt.axes()
pt, = ax.plot([], [],'ro')
ani = animation.FuncAnimation(fig, update, data_gen, interval=100)
plt.plot(0,0,'b*')
plt.show()
答案 0 :(得分:1)
我怀疑你可能会通过有效的闭包得到一些有趣的东西(你是在交互式环境中运行吗?),因为pt
将从之前的代码执行中定义,这是{{1运行。然后,您创建了def update
的新版本,但这不是pt
将update
移到上面{/ 1}}或尝试传入pt, = ax.plot([],[],'ro')
作为参数。
例如:
update