环境: Python 2.7,Matplotlib1.3,IPython 笔记本1.1,Linux 和 Chrome。代码在一个单独的输入单元中,使用 --pylab=inline
。
我想使用 IPython 笔记本电脑和熊猫消费一个流和动态更新一个情节,每五秒钟。
当我只使用 print 语句以文本格式打印数据时,它工作得非常好: 输出单元格只是继续打印数据并添加新行。但是,当我试图绘制数据(然后在循环中更新它)时,图从未在输出单元格中显示出来。但是如果我删除循环,仅仅绘制一次,就可以正常工作。
然后我做了一些简单的测试:
i = pd.date_range('2013-1-1',periods=100,freq='s')
while True:
plot(pd.Series(data=np.random.randn(100), index=i))
#pd.Series(data=np.random.randn(100), index=i).plot() also tried this one
time.sleep(5)
直到我手动中断进程(Ctrl + M + I) ,输出才会显示任何内容。在我打断它之后,图像正确地显示为多条重叠的线条。但是我真正想要的是一个每五秒显示一次并更新一次的绘图(或者每当调用 plot()
函数时,就像我上面提到的 print 语句输出一样,它工作得很好)。只有显示最后的图表后,细胞是完全做的是 没有我想要的。
我甚至尝试在每个 plot()
之后显式地添加 draw ()函数,等等。都不管用。如何在 IPython 笔记本的一个单元中通过 为了/同时循环动态更新一个绘图?