在HTML嵌入的散景图中流式传输

时间:2017-02-07 10:34:05

标签: python streaming bokeh

我正在尝试使用autoload_server函数将流式散景图嵌入到HTML文件中:

from bokeh.client import push_session
from bokeh.embed import autoload_server
from bokeh.models import ColumnDataSource
from bokeh.plotting import figure, curdoc

data = dict(x=[], y=[])
source = ColumnDataSource(data)

plot = figure()
plot.circle(source=source, x='x', y='y')

counter = -1

def update_data():
    global xDate, yWind, counter
    counter += 1
    xDate = counter
    yWind = counter
    new_data_wind = dict(x=[xDate], y=[yWind])
    source.stream(new_data_wind, 300)

curdoc().add_root(plot)
curdoc().add_periodic_callback(update_data, 300)

session = push_session(curdoc())
script = autoload_server(plot, session_id=session.id)
print(script)

我基本上使用“bokeh serve”启动一个散景服务器,然后运行代码并将给定的脚本插入到HTML文件中。

首先,不会显示任何绘图,但在将--allow-websocket-origin = localhost:63342添加到bokeh服务命令后,页面将显示绘图网格,但不会显示任何数据。

有人知道为什么数据流功能似乎不起作用或我可以改变什么来使嵌入式绘图流数据?

我感谢任何进一步的意见,因为我还没有在互联网上找到一些。

修改 我找到了问题的解决方案,如果有人遇到类似的东西,我会把它留在这里:

代码片段:

session.loop_until_closed()

需要添加到上面示例的末尾,因此会话循环并且最终的绘图在浏览器中更新。

1 个答案:

答案 0 :(得分:1)

如上所示,我只是发布我的答案,所以这不会再显示为未回答的问题了:

代码片段:

session.loop_until_closed()

需要添加到上面示例的末尾,因此会话循环并且最终的绘图在浏览器中更新。