在python中绘制流数据的最轻量级方法

Chr*_*ris 10 python matplotlib

为了让您了解我正在寻找的东西,它看起来像这样:

到目前为止,我已经将matplotlib用于我的所有绘图,并且时间并不重要(它已经在后期处理中完成).

我想知道除了将我的数据向左移动并重新绘制整个图之外,是否有更轻的重量绘图方式.

Tho*_*anz 7

看看Matplotlib动画示例.主要技巧是不完全重绘图形,而是使用matplotlib的OO接口并设置您创建的绘图线的x/ydata.如果你已经将你的绘图与某些GUI集成在一起,例如GTK,那么肯定就像在绘图的相应部分中提出的那样,否则你可能会干扰GUI工具包的事件循环.

作为参考,如果链接死亡:

from pylab import *
import time

ion()

tstart = time.time()               # for profiling
x = arange(0,2*pi,0.01)            # x-array
line, = plot(x,sin(x))
for i in arange(1,200):
    line.set_ydata(sin(x+i/10.0))  # update the data
    draw()                         # redraw the canvas

print 'FPS:' , 200/(time.time()-tstart)
Run Code Online (Sandbox Code Playgroud)

  • 如果你不使用`pyplot`来获得`draw()`的效果,你需要调用`fig.canvas.draw()`来更新新数据.此外,该链接有点过时,我更喜欢这个http://jakevdp.github.com/blog/2012/08/18/matplotlib-animation-tutorial/. (3认同)