Bokeh - 嵌入绘图和应用程序
独立文档形式的绘图和数据以及 Bokeh 应用程序可以嵌入到 HTML 文档中。
独立文档是 Bokeh 图或不受 Bokeh 服务器支持的文档。 这种情节中的交互纯粹是自定义 JS 的形式,而不是纯 Python 回调。
也可以嵌入 Bokeh 服务器支持的 Bokeh 图和文档。 此类文档包含在服务器上运行的 Python 回调。
在独立文档的情况下,表示 Bokeh 图的原始 HTML 代码由 file_html() 函数获得。
from bokeh.plotting import figure from bokeh.resources import CDN from bokeh.embed import file_html fig = figure() fig.line([1,2,3,4,5], [3,4,5,2,3]) string = file_html(plot, CDN, "my plot")
file_html() 函数的返回值可以保存为 HTML 文件,也可以用于通过 URL 路由在 Flask 应用程序中呈现。
对于独立文档,其 JSON 表示形式可以通过 json_item() 函数获得。
from bokeh.plotting import figure from bokeh.embed import file_html import json fig = figure() fig.line([1,2,3,4,5], [3,4,5,2,3]) item_text = json.dumps(json_item(fig, "myplot"))
这个输出可以被网页上的 Bokeh.embed.embed_item 函数使用 −
item = JSON.parse(item_text); Bokeh.embed.embed_item(item);
Bokeh 服务器上的 Bokeh 应用程序也可以嵌入,以便在每次页面加载时创建一个新的会话和文档,以便加载特定的现有会话。 这可以通过 server_document() 函数来完成。 它接受指向 Bokeh 服务器应用程序的 URL,并返回一个脚本,该脚本将在脚本执行时从该服务器嵌入新会话。
server_document() 函数 接受 URL 参数。 如果设置为"default",将使用默认 URL http://localhost:5006/。
from bokeh.embed import server_document script = server_document("http://localhost:5006/sliders")
server_document() 函数返回一个script标签如下 −
<script src="http://localhost:5006/sliders/autoload.js?bokeh-autoload-element=1000&bokeh-app-path=/sliders&bokeh-absolute-url=https://localhost:5006/sliders" id="1000"> </script>