在线图表

时间:2012-10-04 05:39:42

标签: plot matplotlib real-time gnuplot

我需要某种工具来绘制连续的数据流。换句话说,我有一个程序,我们称之为A,运行模拟并输出连续的数字流。由于A是处理器密集型的,因此它可能在专用计算机上运行以进行批处理作业,在家中运行以使用我的图形卡,或者在我们的宠物超级计算机网格中运行。因此,我希望尽可能简单地保持A,它必须只负责计算数字并将它们发送到标准输出或管道。但是我希望看到这些数字出来,所以,在我的桌面上,我需要第二个程序B来观察A的输出并实时绘制它们

所以,这是我的问题:我可以用什么作为B程序?是否可以使用gnuplot,matplotlib或任何其他工具进行调整?我更喜欢一个简单的设置,不需要在一整天的代码中摸索。

提前致谢。

1 个答案:

答案 0 :(得分:1)

对于matplotlib,一些非常简单的东西可能如下:

import pylab

plotdata = [] 
while True:
    line = raw_input()
    data = line.split()
    try:
        data = [float(datum) for datum in data]
    except ValueError:   # no floating point input
        continue
    plotdata.extend(data)
    pylab.plot(plotdata, 'k-')
    pylab.show(False)

这将无限循环(直到你点击control-C),并从stdin中吃掉数字。我没有多想,所以它可能缺乏细节,但由于你没有任何东西可以开始,我保持简单。