嗨,我正在开发一个需要绘制数百万个点的网页,所以我在我的后端使用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
渲染Bokeh图并在内部调用datashader以在控制缩放时创建图像。但问题是,因为我只通过API调用此函数一次,缩放控件不会创建新图像,而只是使像素更大。
我需要一种方法来运行“实时python进程”,因为documentation状态,所以我可以有缩放控件和工具提示。但我不知道如何实现这一目标。
将内容转储到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的Web服务器,并在它们之间建立连接。