我创建了一个交互式 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
最佳答案
该应用程序是否会触发实际的 Python 代码?
如果没有,您可能会考虑将其重新设计为非服务器独立文档(例如,使用 CustomJS
回调)。这只会生成一个独立的静态 HTML 文件,您可以将其发布或发送到任何地方,并且可以立即访问它。
如果您的应用确实依赖于执行实际的 python 代码来完成工作,那么它实际上需要在某处运行以便用户与之交互。首先,我建议您制作一个在服务器中运行的真实应用程序,例如 in the demo app gallery。 (另请参阅用户指南中的 Use Case Scenarios)。一个真正的服务器应用程序,即你像 bokeh serve myapp.py
一样运行的应用程序,绝对比使用 bokeh.client
更受欢迎,特别是对于“发布”场景(它也将是更简单/更少的代码和更高的性能)。然后,分发该应用可能意味着以下几点:
- 你给他们脚本,他们自己在本地运行
bokeh serve app.py
- 您通过让应用程序在服务器上运行来“部署”该应用程序,该服务器具有您希望能够看到它的用户可以访问的 URL
根据应用程序的计算量,以及您在给定时间期望的用户数量,第二个选项可以像在某处运行 bokeh serve app.py
一样简单。但是,如果计算量很大或者您预计会有大量流量,您可能需要在负载均衡器后面进行更复杂的“横向扩展”部署。更多信息在 Deployment Scenarios 中在用户指南中,当然我们很乐意帮助更多关于 public mailing list 的扩展讨论.最后,我要提一下,在不久的将来,Bokeh 应用程序的自动可扩展发布将作为一项功能在 https://anaconda.org/ 上提供。
关于python-2.7 - 保存交互式 Bokeh 图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36713909/