Python - Matplotlib FuncAnimation - Mac - 不返回点

时间:2012-10-23 22:37:29

标签: python matplotlib

使用以下代码,我试图迭代地将点添加到图形中。由于我在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()

1 个答案:

答案 0 :(得分:1)

我怀疑你可能会通过有效的闭包得到一些有趣的东西(你是在交互式环境中运行吗?),因为pt将从之前的代码执行中定义,这是{{1运行。然后,您创建了def update的新版本,但这不是pt

更新的内容

update 移到上面{/ 1}}或尝试传入pt, = ax.plot([],[],'ro')作为参数。

例如:

update