使用bokeh流两个线图

发布于 2021-01-29 17:15:36

我想创建一个可视化,其中有两个折线图,每个折线图每秒更新一个新点。

我最近阅读了有关bokeh的信息,发现它可以用于实时可视化数据流。但是,我还不知道如何编写代码。

如果有人可以向我展示如何使用bokeh完成此任务,我将不胜感激。谢谢!

关注者
0
被浏览
52
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    对于bokeh-0.11.1

    基本上,您需要在bokeh服务器中运行python应用程序。然后,任何人都可以连接到服务器并实时查看图形。

    首先,编写您的程序。例如,使用以下代码:

    # myplot.py
    from bokeh.plotting import figure, curdoc
    from bokeh.driving import linear
    import random
    
    p = figure(plot_width=400, plot_height=400)
    r1 = p.line([], [], color="firebrick", line_width=2)
    r2 = p.line([], [], color="navy", line_width=2)
    
    ds1 = r1.data_source
    ds2 = r2.data_source
    
    @linear()
    def update(step):
        ds1.data['x'].append(step)
        ds1.data['y'].append(random.randint(0,100))
        ds2.data['x'].append(step)
        ds2.data['y'].append(random.randint(0,100))  
        ds1.trigger('data', ds1.data, ds1.data)
        ds2.trigger('data', ds2.data, ds2.data)
    
    curdoc().add_root(p)
    
    # Add a periodic callback to be run every 500 milliseconds
    curdoc().add_periodic_callback(update, 500)
    

    然后使用您的程序从命令行运行服务器:

    C:\>bokeh serve --show myplot.py
    

    这将打开带有实时图形的浏览器。

    有关所有详细信息,请参阅bokeh服务器文档



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看