python-2.7 - 保存交互式 Bokeh 图

标签 python-2.7 bokeh

我创建了一个交互式 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/

相关文章:

python - 使用数据库信息创建 Bokeh 时间序列图

python - Bokeh 100% 堆叠条形图

python - 如何将输入读取为数字?

python - Bokeh 布局的背景颜色

javascript - 如何通过 JavaScript 在 Bokeh 中设置输入文本字段的值?

javascript - 带有自定义图标的 Bokeh 自定义操作

python - 使 Python 通过 SSH 隧道连接到 MySQL

python - python 条件 (if) 语句是否有最大长度?

python - 创建一个递归排序的文件列表(从最旧的开始)

python - 如果它不以 http 开头,我如何将 http 添加到 url?