Bokeh 嵌入绘图和应用程序
独立文档形式的图谱和数据以及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表示法可以通过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应用程序也可以被嵌入,以便在每个页面加载时创建一个新的会话和Document,这样就可以加载一个特定的、现有的会话。这可以通过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
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>