我创建了一个交互式散景图表,其中包含各种小部件,可以处理数据。我现在想了解分享这样一个情节的标准方法是什么,或者我如何保存它以进行分享。
使用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
答案 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
本地运行根据应用程序的计算量以及您在给定时间内预期的用户数量,第二个选项可能就像在某处运行bokeh serve app.py
一样简单。但是,如果存在大量计算或者您期望大量流量,则可能需要在负载均衡器后面进行更复杂的“向外扩展”部署。更多信息位于用户指南的Deployment Scenarios中,当然我们很乐意帮助您对public mailing list进行更多扩展讨论。最后,我要提一下,在不久的将来,Bokeh应用程序的自动可扩展发布将作为https://anaconda.org/上的一项功能提供