Bokeh - 嵌入圖表和應用



圖表和資料可以以獨立文件以及 Bokeh 應用程式的形式嵌入到 HTML 文件中。

獨立文件是未由 Bokeh 伺服器支援的 Bokeh 圖表或文件。此類圖表中的互動純粹是自定義 JS 的形式,而不是純 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()` 函式接受 URL 引數。如果將其設定為“default”,則將使用預設 URL https://:5006/。

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

`server_document()` 函式返回如下指令碼標籤:

<script
   src="https://:5006/sliders/autoload.js?bokeh-autoload-element=1000&bokeh-app-path=/sliders&bokeh-absolute-url=https://:5006/sliders"
   id="1000">
</script>
廣告