0

嗨,我正在开发一个需要绘制数百万个点的网页,因此我在后端使用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渲染散景图并在内部调用 datashader 以在您控制缩放时创建图像。但问题是,当我通过 API 调用此函数一次时,缩放控件不会创建新图像,而只会使像素变大。

我需要一种方法来让“实时 python 进程运行”作为文档状态,这样我就可以拥有缩放控件和工具提示。但我不知道如何实现这一目标。

4

1 回答 1

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 的网络服务器,并在它们之间建立连接。

于 2019-02-20T18:54:42.103 回答