适合Python的实时图表框架?

5 投票
3 回答
5942 浏览
提问于 2025-04-16 01:57

我正在开发一个Python应用程序,这个程序需要对实时数据进行回归分析,并且要把结果画成图表。简单来说,就是这个应用会不断接收实时数据,然后根据这些数据更新回归模型的计算结果。需要注意的是,我想把输入的数据和输出的回归分析结果都画在同一个图表里。

我之前用过Matplotlib这个工具。请问这是最合适的框架吗?我觉得它看起来有点静态,而且找不到和我这个需求类似的好例子。对我来说,它似乎也有点臃肿。性能很重要,所以如果有其他快速的Python绘图框架,而且占用资源少的话,我非常想知道...

3 个回答

1

我没有使用过Matplotlib,但我发现gnuplot对于我的所有图表需求来说都足够用了。你可以选择从Python中调用gnuplot,或者使用gnuplot.py(gnuplot-py.sourceforge.net)来和gnuplot进行连接。

1

你可以使用OpenFlash Chart,它能给你生成非常好看的图表。你不需要安装Flash(它可以在Flex上运行),而且还有一个Python库,可以用一种很优雅的方式来绘制图表:

def test_radar_charts_3():
    chart = open_flash_chart()
    chart.title = title(text='Radar Chart')

    val1 = [30,50,60,70,80,90,100,115,130,115,100,90,80,70,60,50]
    spokes = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p']
    val2 = []

    for i in val1:                                   
        txt = "#val#<br>Spoke: %s" % i 
        tmp = dot_value(value=i,  colour='#D41E47', tip=txt)
        val2.append(tmp)

    line = line_hollow()
    line.values = val2
    line.halo_size = 0
    line.width = 2
    line.dot_size = 6
    line.colour = '#FBB829'
    line.text = 'Hearts'
    line.font_size = 10
    line.loop = True
    chart.add_element(line)
    r = radar_axis(max=150)
    r.step = 10
    r.colour = '#DAD5E0'
    r.grid_colour = '#EFEFEF'
    chart.radar_axis = r
    tip = tooltip(proximity=1)
    chart.tooltip = tip
    chart.bg_colour = '#FFFFFF'
    return chart
4

我用matplotlib做过不少动画图表的工作,但每次都得花点时间调整才能让它正常运行。

不过这里有个不错的例子:

http://matplotlib.sourceforge.net/examples/animation/simple_anim_gtk.html

撰写回答