【问题标题】:How to connect holoviews in backend with bokehjs frontend如何将后端的全息视图与 bokehjs 前端连接起来
【发布时间】:2019-02-21 02:54:42
【问题描述】:

您好,我正在开发一个需要绘制数百万个点的网页,因此我在后端使用 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 调用此函数一次时,缩放控件不会创建新图像,而只会使像素变大。

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

【问题讨论】:

    标签: python bokeh holoviews datashader


    【解决方案1】:

    一旦您将内容转储到 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 的网络服务器,并在它们之间建立连接。

    【讨论】:

    • 谢谢,你告诉我的有效,但我仍然需要将绘图发送到使用 bokehjs 的不同应用程序,这就是我发送带有 bokeh 模型的 JSON 的原因。如何在我的应用程序中的 bokehjs 和 bokeh 服务器之间建立连接?
    • 这取决于您的应用程序。许多人已将 Bokeh 嵌入到各种类型的应用程序中,希望您能在 Bokeh 文档或 stackoverflow 中找到与您的想法相似的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-18
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    • 1970-01-01
    • 2020-05-17
    相关资源
    最近更新 更多