bokeh.embed

提供在网页中嵌入Bokeh独立和服务器内容的功能。

autoload_static(model: Union[bokeh.model.Model, bokeh.document.document.Document], resources: bokeh.resources.Resources, script_path: str) → Tuple[str, str][源代码]

返回JavaScript代码和可用于嵌入Bokeh图的脚本标记。

绘图的数据直接存储在返回的JavaScript代码中。

参数
返回

要保存在的JavaScript代码 script_path 和A <script> 标记以加载它

返回类型

(js, tag)

引发

ValueError --

components(models: Union[bokeh.model.Model, bokeh.document.document.Document, Sequence[Union[bokeh.model.Model, bokeh.document.document.Document]], Dict[str, Union[bokeh.model.Model, bokeh.document.document.Document]]], wrap_script: bool = True, wrap_plot_info: bool = True, theme: Union[None, bokeh.themes.theme.Theme, Type[bokeh.embed.util.FromCurdoc]] = None) → Tuple[str, Any][源代码]

返回HTML组件以嵌入Bokeh图。绘图的数据直接存储在返回的HTML中。

示例可以在examples/embed/embed中找到_多个.py

返回的组件假定BokehJS资源是 已加载 . 嵌入它们的html模板需要包括以下脚本标记。widgets和tables资源只有在组件使用widgets和tables时才是必需的。

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

请注意,在Jupyter笔记本中,不可能在同一笔记本单元中使用组件和显示。

参数
  • models (Model|list|dict|tuple) -- 单个模型、模型的列表/元组或键和模型的字典。

  • wrap_script (boolean, optional) -- 如果为True,则返回的javascript被包装在脚本标记中。(默认值:True)

  • wrap_plot_info (boolean, optional) --

    如果为True,则返回 <div> 串。否则,返回可用于构建您自己的div的dict。(默认值:True)

    如果为False,则返回的字典包含以下信息:

    {
        'modelid':  'The model ID, used with Document.get_model_by_id',
        'elementid': 'The css identifier the BokehJS will look for to target the plot',
        'docid': 'Used by Bokeh to find the doc embedded in the returned script',
    }
    

  • theme (Theme, optional) -- 创建组件时应用指定的主题。如果没有,或者没有指定,并且提供的模型构成了一个文档的完整根集,则将该文档的主题应用于组件。否则应用默认主题。

返回

UTF-8编码 [(脚本,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_dict)

components((plot1, plot2), wrap_script=False, wrap_plot_info=False)
# => (javascript, (plot1_dict, plot2_dict))

components({"Plot 1": plot1, "Plot 2": plot2}, wrap_script=False, wrap_plot_info=False)
# => (javascript, {"Plot 1": plot1_dict, "Plot 2": plot2_dict})
file_html(models: Union[bokeh.model.Model, bokeh.document.document.Document, Sequence[bokeh.model.Model]], resources: Union[bokeh.resources.Resources, Tuple[bokeh.resources.JSResources, bokeh.resources.CSSResources]], title: Optional[str] = None, template: Union[jinja2.environment.Template, str] = <Template 'file.html'>, template_variables: Dict[str, Any] = {}, theme: Union[None, bokeh.themes.theme.Theme, Type[bokeh.embed.util.FromCurdoc]] = None, suppress_callback_warning: bool = False, _always_new: bool = False)str[源代码]

返回嵌入Bokeh模型或文档对象的HTML文档。

绘图的数据直接存储在返回的HTML中,支持独立定制JS/CSS资源和定制jinja2模板。

参数
  • models (Model or Document or seq[Model]) -- 一个或多个对象渲染典型的模型或文档

  • resources (Resources or tuple(JSResources or None, CSSResources or None)) -- Bokeh JS&CSS资产的资源配置。

  • title (str, optional) -- HTML文档的标题 <title> 标记或无。(默认值:无)如果没有,则尝试从给定的打印对象自动查找文档标题。

  • template (Template, optional) -- HTML文档模板(默认:文件)Jinja2模板,请参见bokeh.core.templates公司.FILE以获取所需的模板参数

  • template_variables (dict, optional) -- 要在Jinja2模板中使用的变量。如果使用css,则后面的脚本将被改写

  • theme (Theme, optional) -- 将指定的主题应用于所创建的html。如果 None ,或未指定,并且函数传递给文档或文档的完整根集,则应用该文档的主题。否则应用默认主题。

  • suppress_callback_warning (bool, optional) -- 通常,从包含Python回调的Bokeh文档生成独立的HTML将导致一个警告,指出回调无法正常工作。但是,此设置可以被抑制(默认情况下,此值为False)

返回

UTF-8编码HTML

json_item(model: bokeh.model.Model, target: Optional[str] = None, theme: Union[None, bokeh.themes.theme.Theme, Type[bokeh.embed.util.FromCurdoc]] = None) → Any[源代码]

返回可用于嵌入独立Bokeh内容的JSON块。

参数
  • model (Model) -- 要嵌入的Bokeh对象

  • target (string, optional) -- 要嵌入模型的div id。如果没有,则必须在JavaScript调用中提供目标id。

  • theme (Theme, optional) -- 将指定的主题应用于所创建的html。如果 None ,或未指定,并且函数传递给文档或文档的完整根集,则应用该文档的主题。否则应用默认主题。

返回

类似JSON

此函数返回可由BokehJS函数使用的JSON块 Bokeh.embed.embed_item . 例如,一个烧瓶端点 /plot 可能返回以下内容以将Bokeh图嵌入到id为的div中 “我的阴谋”

@app.route('/plot')
def plot():
    p = make_plot('petal_width', 'petal_length')
    return json.dumps(json_item(p, "myplot"))

通过调用JSON并调用web页面来检索 Bokeh.embed.embed_item

<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='default', relative_urls=False, resources='default', arguments=None, headers=None)[源代码]

返回嵌入Bokeh服务器内容的脚本标记。

使用这些方法嵌入的Bokeh应用程序不会设置浏览器窗口标题。

参数
  • url (str, optional) -- Bokeh服务器上Bokeh应用程序的URL(默认值:“default”),如果 "default" 默认URL http://localhost:5006/ 将被使用。

  • relative_urls (bool, optional) -- 是否对资源使用相对URL。如果 True 为bokehjsjavascript和CSS等资源生成的链接将是相对链接。通常应设置为 False ,但必须设置为 True 在只有相对URL才能工作的情况下。E、 g.在某些配置下运行反向代理后的Bokeh时

  • resources -- 指定需要与文档一起加载哪些资源的字符串。如果 default 然后将加载默认的JS/cssbokeh文件。如果没有,则不会加载任何资源文件。如果您希望通过其他方式(例如从缓存服务器)服务这些资源文件,这将非常有用。但是,请注意,您将单独加载的资源文件与服务器的版本相同,否则渲染可能无法正常工作。

返回

A <script> 将从Bokeh服务器嵌入内容的标记。

server_session(model=None, session_id=None, url='default', relative_urls=False, resources='default', headers={})[源代码]

返回一个脚本标记,该标记嵌入Bokeh服务器上特定现有会话的内容。

此函数通常只用于从以前使用 bokeh.client 应用程序编程接口。

使用这些方法嵌入的Bokeh应用程序不会设置浏览器窗口标题。

注解

通常,对于不同或多个页面加载,您不希望保存或重用此函数的输出。

参数
  • model (Model or None, optional) -- 从会话中渲染的对象,或无。(默认值:无)如果没有,将呈现整个文档。

  • session_id (str) -- 服务器会话ID

  • url (str, optional) -- Bokeh服务器上Bokeh应用程序的URL(默认值:“default”),如果 "default" 默认URL http://localhost:5006/ 将被使用。

  • relative_urls (bool, optional) -- 是否对资源使用相对URL。如果 True 为bokehjsjavascript和CSS等资源生成的链接将是相对链接。通常应设置为 False ,但必须设置为 True 在只有相对URL才能工作的情况下。E、 g.在某些配置下运行反向代理后的Bokeh时

  • resources -- 指定需要与文档一起加载哪些资源的字符串。如果 default 然后将加载默认的JS/cssbokeh文件。如果没有,则不会加载任何资源文件。如果您希望通过其他方式(例如从缓存服务器)服务这些资源文件,这将非常有用。但是,请注意,您将单独加载的资源文件与服务器的版本相同,否则渲染可能无法正常工作。

返回

A <script> 将从Bokeh服务器嵌入内容的标记。。重复使用警告通常是一个坏主意 session_id 每次页面加载。这很可能会造成可伸缩性和安全性问题,并会导致“共享Google doc”行为,这可能是不需要的。