保存交互式散景图

时间:2016-04-19 09:14:45

标签: python-2.7 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 个答案:

答案 0 :(得分:4)

app会触发实际的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/上的一项功能提供