使用bokeh流两个线图
我想创建一个可视化,其中有两个折线图,每个折线图每秒更新一个新点。
我最近阅读了有关bokeh的信息,发现它可以用于实时可视化数据流。但是,我还不知道如何编写代码。
如果有人可以向我展示如何使用bokeh完成此任务,我将不胜感激。谢谢!
-
对于
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服务器文档。