保存交互式Bokeh图表

3
我已经创建了一个带有各种小部件的交互式Bokeh图表,可以操纵数据。我现在想了解分享此类图表的标准方法,或者如何保存它以进行分享。
该图表是使用curdoc方法创建的,然后使用session.show()输出到Bokeh服务器。
#create current visualization using plot p and widgets inputs
curdoc().add_root(HBox(inputs, p, width=1100))

#run the session
session = push_session(curdoc())
session.show() # open the document in a browser
session.loop_until_closed() # run forever
1个回答

4

这个应用是否会触发实际的Python代码?

如果不是,你可以考虑将其重构为一个非服务器独立文档(例如使用CustomJS回调)。这将生成一个自包含的静态HTML文件,你可以在任何地方发布或发送它,并立即访问。

如果你的应用程序依赖于执行实际的Python代码来完成工作,则需要在某处实际运行该应用程序以供用户与之交互。首先,我建议你制作一个真正的运行在服务器上的应用程序,例如 演示应用程序库(请参见用户指南中的用例场景)。一个真正的服务器应用程序,即像bokeh serve myapp.py这样运行的应用程序,绝对优于使用bokeh.client,特别是对于“发布”场景(它也将更简单/代码更少,性能更好)。然后,分发应用程序可能意味着一些事情:

  • 你向他们提供脚本,然后他们在本地运行 bokeh serve app.py
  • 你可以通过让应用程序保持运行状态并具有可供用户访问的URL来“部署”应用程序

根据应用程序所需的计算量和预期同时在线用户数量,第二个选项可能只需要在某个地方运行bokeh serve app.py。但是,如果计算量很大或者您预计将有大量流量,您可能需要更复杂的“扩展”部署方式,并在负载均衡器后面进行部署。有关详细信息,请参阅用户指南中的部署方案,当然我们很乐意在公共邮件列表上进行更深入的讨论。最后,我应该提到,在不久的将来,自动可扩展的 Bokeh 应用程序发布功能将作为 https://anaconda.org/ 的一个特性提供。


是的,该应用程序会触发Python代码根据小部件选择持续更新数据,非常类似于您链接中显示的电影示例设置。我想我有兴趣了解如何部署这样的应用程序。 - Marcus
我建议您访问上面提供的链接,这些链接包含了关于不同部署方案的大量信息。除此之外,我建议您访问公共邮件列表,因为那里可能会有更多关于您特定情况的详细讨论,以提供帮助。 - bigreddot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接