如何在后台使用bokeh.js前端连接全息视图

时间:2019-02-20 15:31:41

标签: python bokeh holoviews datashader

嗨,我正在开发一个需要绘制数百万个点的网页,因此我在后端使用了 HoloViews 来生成图并将其发送为 Bokeh 到我的前端模型使用 Bokehjs

因此在API中,我调用了执行此操作的函数

hv.extension("bokeh")
points = hv.Points(df)
datashaded = hd.datashade(points, aggregator=ds.count_cat('cat')).redim.range(x=(-5,5),y=(-5,5))
plot = hv.render(datashaded)
return json.dumps(json_item(plot))

并返回以JSON格式发送到前端的Bokeh模型。

函数hd.datashade渲染散景图,并在您控制缩放时内部调用数据着色器以创建图像。但是问题在于,当我仅通过API调用此函数一次时,缩放控件就不会创建新图像,而是只会增加像素。

我需要一种以documentation的状态运行“实时python进程”的方法,以便可以使用缩放控件和工具提示。但是我不知道如何实现这一目标。

1 个答案:

答案 0 :(得分:0)

将内容转储到JSON后,将不再与Python代码建立任何连接。相反,您可以在http://pyviz.org/tutorial/13_Deploying_Bokeh_Apps.html中进行类似操作:

hv.extension("bokeh")
points = hv.Points(df)
datashaded = hd.datashade(points, aggregator=ds.count_cat('cat')).redim.range(x=(-5,5),y=(-5,5))
doc = hv.renderer('bokeh').server_doc(datashaded)
doc.title = 'HoloViews Bokeh App'

然后运行bokeh serve --show file.py在文件上启动Bokeh Server。 Bokeh服务器将确保Python进程正在运行,并提供一个用于显示HTML / JS的网络服务器,并在它们之间建立连接。