Bokeh 简明教程

Bokeh - Embedding Plots and Apps

以独立文档或 Bokeh 应用程序的形式显示图和数据也可以嵌入 HTML 文档中。

独立文档是 Bokeh 图或未由 Bokeh 服务器支持的文档。此类图中的交互纯粹以自定义 JS 形式进行,而不是 Pure Python 回调。

由 Bokeh 服务器支持的 Bokeh 图和文档也可以嵌入。此类文档包含在服务器上运行的 Python 回调。

在独立文档的情况下,可以通过 file_html() 函数获取表示 Bokeh 图的原始 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 文件,也可以通过 Flask 应用程序中的 URL 路由来渲染。

在独立文档的情况下,可以通过 json_item() 函数获取其 JSON 表示。

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() function 接受 URL 参数。如果设置为“默认”,将使用默认 URL [role="bare"] [role="bare"]http://localhost:5006/

from bokeh.embed import server_document
script = server_document("http://localhost:5006/sliders")

server_document() 函数返回以下脚本代码 −

<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>