Matplotlib funcAnimation无法打开/显示情节

时间:2016-11-11 23:14:47

标签: python-2.7 animation matplotlib generator

我正在尝试使用matplotlib内置的funcAnimation类来学习如何制作绘图动画。对于此示例,我只想生成随机分布的正常值的2D散点图,并在每次更新点时为绘图添加一个点(为出现的点设置动画)。示例代码如下:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import random

plt.ion()
fig, ax = plt.subplots()
scat = ax.scatter([],[])
scat.axes.axis([-5, 5, -5, 5])

def update(point):
    array = scat.get_offsets()
    array = np.append(array, point)
    scat.set_offsets(array)
    return scat

def data_gen():
    for _ in range(0,100):
        point = np.random.normal(0, 1, 2)
        yield point

ani = animation.FuncAnimation(fig, update, data_gen, interval=25, blit=False)
plt.show()

当我运行此代码时,没有任何反应。终端搅拌几秒钟,然后没有任何反应。

我使用它作为我的向导:http://matplotlib.org/examples/animation/animate_decay.html,如果我使用线图而不是散点图(基本上只是替换在此示例的生成器中生成点的方式),它& #34;工作"只要它生成数据并更新图表。但它不是我想要的显示器,我想看到散点图上出现的点。要使用散点图,我不需要使用set_data,因为这不是散点图的有效方法;所以我使用的是我在本例中看到的np.append()方法: Dynamically updating plot in matplotlib

所以我的问题是,在这段导致动画不显示的代码中我做错了什么?

编辑:我刚试过/发现如果我添加:     mywriter = animation.FFMpegWriter(fps = 60)     ani.save(' myanimation.mp4',作家= mywriter) 它确实产生一个包含动画的mp4,我只是无法在代码运行时动态显示它。因此,如果您能够诊断它,请关注该问题。感谢。

1 个答案:

答案 0 :(得分:1)

为了将来参考,@ ImmortanceOfBeingErnest指出plot.ion()不是必需的,并且特定于在ipython中绘图。删除它可以解决问题。