使用散景流式传输两条线图
Streaming two line graphs using bokeh
我想创建一个可视化,其中有两个折线图,每个折线图每秒更新一个新点。
我最近阅读了有关 bokeh 的内容,发现它可用于实时可视化数据流。但是,我还不知道如何在其中编码。
如果有人能告诉我如何使用散景完成这项任务,我将不胜感激。谢谢!
对于bokeh-0.11.1
:
基本上,您需要 运行 您 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 server documentation。
您可以通过将以下内容添加到绘图声明中来为图形添加滚动:
p = figure(plot_width=400, plot_height=400)
p.x_range.follow="end"
p.x_range.follow_interval = 20
p.x_range.range_padding=0
其中 follow_interval = 开始滚动之前图形上累积的点数。我相信您也可以在图表上设置可见范围。
仅供参考,我从散景 GitHub 页面上的 OHLC 示例中获得了滚动代码
在这里找到:https://github.com/bokeh/bokeh/tree/master/examples/app
OHLC 是使用 bigreddot 提到的“...= new_data”技术的流数据示例。
我想创建一个可视化,其中有两个折线图,每个折线图每秒更新一个新点。
我最近阅读了有关 bokeh 的内容,发现它可用于实时可视化数据流。但是,我还不知道如何在其中编码。
如果有人能告诉我如何使用散景完成这项任务,我将不胜感激。谢谢!
对于bokeh-0.11.1
:
基本上,您需要 运行 您 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 server documentation。
您可以通过将以下内容添加到绘图声明中来为图形添加滚动:
p = figure(plot_width=400, plot_height=400)
p.x_range.follow="end"
p.x_range.follow_interval = 20
p.x_range.range_padding=0
其中 follow_interval = 开始滚动之前图形上累积的点数。我相信您也可以在图表上设置可见范围。 仅供参考,我从散景 GitHub 页面上的 OHLC 示例中获得了滚动代码 在这里找到:https://github.com/bokeh/bokeh/tree/master/examples/app OHLC 是使用 bigreddot 提到的“...= new_data”技术的流数据示例。