bokeh.embed#
提供用于在网页中嵌入Bokeh独立和服务器内容的函数。
- class RenderRoot(elementid: ~bokeh.core.types.ID, id: ~bokeh.core.types.ID, name: str | None = '', tags: list[~typing.Any] = <factory>)[源代码]#
封装嵌入Bokeh文档根所需的数据。
name或tags的值是可选的。它们可能有助于查询一组根以找到要嵌入的特定根。- elementid: ID#
用于DOM元素的唯一ID
- id: ID#
此根的Bokeh模型ID
- autoload_static(model: Model | Document, resources: 资源, script_path: str) tuple[str, str][source]#
返回可用于嵌入Bokeh图表的JavaScript代码和脚本标签。
图表的数据直接存储在返回的JavaScript代码中。
- Parameters:
- Returns:
要保存在
script_path的 JavaScript 代码以及加载它的- Return type:
(js, tag)
- Raises:
- components(models: Model | Sequence[Model] | dict[str, Model], wrap_script: bool = True, wrap_plot_info: bool = True, theme: None | 主题 | type[FromCurdoc] = None) tuple[str, Any][source]#
返回HTML组件以嵌入Bokeh图表。图表的数据直接存储在返回的HTML中。
可以在 examples/embed/embed_multiple.py 中找到示例
返回的组件假设BokehJS资源已经加载。 它们将被嵌入的HTML文档或模板需要包含脚本标签,无论是从本地URL还是Bokeh的CDN(将
x.y.z替换为您正在使用的Bokeh版本):<script src="https://cdn.bokeh.org/bokeh/release/bokeh-x.y.z.min.js"></script> <script src="https://cdn.bokeh.org/bokeh/release/bokeh-widgets-x.y.z.min.js"></script> <script src="https://cdn.bokeh.org/bokeh/release/bokeh-tables-x.y.z.min.js"></script> <script src="https://cdn.bokeh.org/bokeh/release/bokeh-gl-x.y.z.min.js"></script> <script src="https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-x.y.z.min.js"></script>
只有Bokeh核心库
bokeh-x.y.z.min.js是始终需要的。其他脚本是可选的,只有在您想使用相应功能时才需要包含:只有在使用任何Bokeh widgets时,才需要
"bokeh-widgets"文件。"bokeh-tables"文件仅在您使用 Bokeh 的 数据表 时才需要。使用BokehJS API需要
"bokeh-api"文件,并且必须在核心BokehJS库之后加载。"bokeh-gl"文件是启用 WebGL支持所必需的。需要
"bokeh-mathjax"文件来启用 MathJax support。
- Parameters:
wrap_script (boolean, optional) – 如果为True,返回的javascript会被包裹在script标签中。 (默认值: True)
wrap_plot_info (boolean, optional) – 如果为True,返回
字符串。否则,返回RenderRoot对象,这些对象可用于构建 你自己的divs。(默认值:True)主题 (Theme, 可选) – 在创建组件时应用指定的主题。如果为None,或未指定,并且提供的模型构成文档的完整根集,则应用该文档的主题到组件。否则应用默认主题。
- Returns:
UTF-8 编码的 (script, div[s]) 或 (raw_script, plot_info[s])
示例
使用默认的包装参数值:
components(plot) # => (script, plot_div) components((plot1, plot2)) # => (script, (plot1_div, plot2_div)) components({"Plot 1": plot1, "Plot 2": plot2}) # => (script, {"Plot 1": plot1_div, "Plot 2": plot2_div})
示例
将包装参数设置为
False:components(plot, wrap_script=False, wrap_plot_info=False) # => (javascript, plot_root) components((plot1, plot2), wrap_script=False, wrap_plot_info=False) # => (javascript, (plot1_root, plot2_root)) components({"Plot 1": plot1, "Plot 2": plot2}, wrap_script=False, wrap_plot_info=False) # => (javascript, {"Plot 1": plot1_root, "Plot 2": plot2_root})
- file_html(models: Model | Document | Sequence[Model], resources: ResourcesLike | None = None, title: str | None = None, *, template: Template | str = <Template 'file.html'>, template_variables: dict[str, Any] = {}, theme: ThemeLike = None, suppress_callback_warning: bool = False, _always_new: bool = False) str[source]#
返回一个嵌入Bokeh模型或文档对象的HTML文档。
图表的数据直接存储在返回的HTML中,支持独立定制JS/CSS资源以及定制jinja2模板。
- Parameters:
模型 (Model 或 Document 或 seq[Model]) – 要渲染的Bokeh对象或对象 通常是一个模型或文档
资源 (ResourcesLike) – 用于Bokeh JS和CSS资产的资源配置。
title (str, optional) –
HTML文档的标题
标签或 None。(默认值:None)如果为 None,尝试从给定的绘图对象中自动查找文档标题。
template (Template, optional) – HTML文档模板(默认:FILE) 一个Jinja2模板,有关所需的模板参数,请参见bokeh.core.templates.FILE
template_variables (dict, optional) – 用于Jinja2模板的变量。如果使用,以下变量名称将被覆盖: title, bokeh_js, bokeh_css, plot_script, plot_div
主题 (Theme, 可选) – 将指定的主题应用于创建的html。如果
None,或未指定,并且函数传递了一个文档或文档的完整根集,则应用该文档的主题。否则应用默认主题。suppress_callback_warning (bool, optional) – 通常情况下,从具有Python回调的Bokeh文档生成独立的HTML时,会生成一个警告,说明回调无法正常工作。但是,可以通过将此值设置为True来抑制此警告(默认值:False)
- Returns:
UTF-8 编码的 HTML
- json_item(model: Model, target: ID | None = None, theme: ThemeLike = None) StandaloneEmbedJson[源代码]#
返回一个可用于嵌入独立Bokeh内容的JSON块。
- Parameters:
- Returns:
类似JSON
此函数返回一个可以被BokehJS函数
Bokeh.embed.embed_item使用的JSON块。例如,一个用于/plot的Flask端点可能会返回以下内容,以将Bokeh图表嵌入到id为“myplot”的div中:@app.route('/plot') def plot(): p = make_plot('petal_width', 'petal_length') return json.dumps(json_item(p, "myplot"))
然后,一个网页可以通过调用
Bokeh.embed.embed_item来检索这个 JSON 并嵌入图表:<script> fetch('/plot') .then(function(response) { return response.json(); }) .then(function(item) { Bokeh.embed.embed_item(item); }) </script>
或者,如果直接在页面源代码中提供目标 div id 更方便,那也是可以的。如果在调用此函数时省略了 target_id:
return json.dumps(json_item(p))
然后传递给
embed_item的值被使用:Bokeh.embed.embed_item(item, "myplot");
- server_document(url: str = 'default', relative_urls: bool = False, resources: Literal['default'] | None = 'default', arguments: dict[str, str] | None = None, headers: dict[str, str] | None = None, with_credentials: bool = False) str[source]#
返回一个嵌入Bokeh服务器内容的脚本标签。
使用这些方法嵌入的Bokeh应用程序将不会设置浏览器窗口的标题。
- Parameters:
url (str, optional) –
一个指向Bokeh服务器上Bokeh应用程序的URL(默认值:“default”)
如果
"default",将使用默认的URLhttp://localhost:5006/。relative_urls (bool, optional) –
是否对资源使用相对URL。
如果设置为
True,则为BokehJS JavaScript和CSS等资源生成的链接将是相对链接。通常应将其设置为
False,但在某些情况下必须设置为True。例如,在某些配置下,当Bokeh在反向代理后运行时。资源 –
一个字符串,指定需要与文档一起加载的资源。
如果
default,则将加载默认的 JS/CSS bokeh 文件。如果为 None,则不会加载任何资源文件。如果您希望通过其他方式提供这些资源文件(例如从缓存服务器),这很有用。但是,请小心确保您单独加载的资源文件与服务器的版本相同,否则渲染可能无法正常工作。
- Returns:
一个
- server_session(model: Model | None = None, session_id: ID | None = None, url: str = 'default', relative_urls: bool = False, resources: Literal['default'] | None = 'default', headers: dict[str, str] = {}, with_credentials: bool = False) str[source]#
返回一个脚本标签,该标签嵌入来自Bokeh服务器上特定现有会话的内容。
此函数通常仅适用于从先前使用
bokeh.clientAPI 创建的特定会话提供服务。使用这些方法嵌入的Bokeh应用程序将不会设置浏览器窗口的标题。
注意
通常你不会希望为不同或多次页面加载保存或重复使用此函数的输出。
- Parameters:
model (Model 或 None, 可选) –
要从会话中渲染的对象,或 None。(默认值:None)
如果为 None,将渲染整个文档。
session_id (str) – 服务器会话ID
url (str, optional) –
一个指向Bokeh服务器上Bokeh应用程序的URL(默认值:“default”)
如果
"default",将使用默认的URLhttp://localhost:5006/。relative_urls (bool, optional) –
是否对资源使用相对URL。
如果设置为
True,则为BokehJS JavaScript和CSS等资源生成的链接将是相对链接。通常应将其设置为
False,但在某些情况下必须设置为True。例如,在某些配置下,当Bokeh在反向代理后运行时。资源 –
一个字符串,指定需要与文档一起加载的资源。
如果
default,则将加载默认的 JS/CSS bokeh 文件。如果为 None,则不会加载任何资源文件。如果您希望通过其他方式提供这些资源文件(例如从缓存服务器),这很有用。但是,请小心确保您单独加载的资源文件与服务器的版本相同,否则渲染可能无法正常工作。
- Returns:
一个