bokeh.io#

curdoc() Document[source]#

返回当前默认状态的文档。

Returns:

当前的默认文档对象。

Return type:

Document

export_png(obj: UIElement | Document, *, filename: PathLike | None = None, width: int | None = None, height: int | None = None, scale_factor: float = 1, webdriver: WebDriver | None = None, timeout: int = 5, state: State | None = None) str[源代码]#

UIElement对象或文档导出为PNG。

如果未提供文件名,则从脚本名称派生(例如 /foo/myplot.py 将创建 /foo/myplot.png

Parameters:
  • obj (UIElementDocument) – 要导出的布局(行/列)、绘图或小部件对象或文档。

  • filename (PathLike, 例如 str, Path, 可选) – 保存文档的文件名(默认值:None) 如果为None,则从文件名推断。

  • width (int) – 仅当它是 Plot 实例时,导出的布局对象的期望宽度。否则,width 参数将被忽略。

  • height (int) – 仅当它是 Plot 实例时,导出的布局对象的期望高度。否则,height 参数将被忽略。

  • scale_factor (float, 可选) – 用于缩放输出PNG的因子,提供更高的分辨率,同时保持元素的相对比例。

  • webdriver (selenium.webdriver) – 用于导出图像的selenium webdriver实例。

  • timeout (int) – 等待Bokeh初始化的最大时间(以秒为单位)(默认值:5)(在1.1.1版本中添加)。

  • state (State, 可选) – 一个 State 对象。如果为 None,则使用当前默认的隐式状态。(默认值: None)。

Returns:

静态文件保存的文件名。

Return type:

文件名 (str)

如果您想直接访问Image对象,而不是将文件保存到磁盘,请使用较低级别的get_screenshot_as_png()函数。

警告

响应式 sizing_modes 可能会生成具有意外大小和宽高比的布局。建议使用默认的 fixed 大小模式。

export_svg(obj: UIElement | Document, *, filename: PathLike | None = None, width: int | None = None, height: int | None = None, webdriver: WebDriver | None = None, timeout: int = 5, state: State | None = None) list[str][source]#

将布局导出为SVG文件或将文档导出为一组SVG文件。

如果未给出文件名,则从脚本名称派生 (例如,/foo/myplot.py 将创建 /foo/myplot.svg

Parameters:
  • obj (UIElement 对象) – 要显示的布局(行/列)、绘图或小部件对象

  • filename (PathLike, 例如 str, Path, 可选) – 保存文档的文件名(默认值:None) 如果为None,则从文件名推断。

  • width (int) – 仅当它是 Plot 实例时,导出的布局对象的期望宽度。否则,width 参数将被忽略。

  • height (int) – 仅当它是 Plot 实例时,导出的布局对象的期望高度。否则,height 参数将被忽略。

  • webdriver (selenium.webdriver) – 用于导出图像的selenium webdriver实例。

  • timeout (int) – 等待Bokeh初始化的最大时间(以秒为单位)(默认值:5)

  • state (State, 可选) – 一个 State 对象。如果为 None,则使用当前默认的隐式状态。(默认值: None)。

Returns:

保存SVG文件的文件名列表。

Return type:

文件名 (list(str))

警告

响应式 sizing_modes 可能会生成具有意外大小和宽高比的布局。建议使用默认的 fixed 大小模式。

export_svgs(obj: UIElement | Document, *, filename: str | None = None, width: int | None = None, height: int | None = None, webdriver: WebDriver | None = None, timeout: int = 5, state: State | None = None) list[str][源代码]#

导出布局中包含SVG支持的图表。每个图表将生成一个单独的SVG文件。

如果未给出文件名,则从脚本名称派生 (例如 /foo/myplot.py 将创建 /foo/myplot.svg

Parameters:
  • obj (UIElement 对象) – 要显示的布局(行/列)、绘图或小部件对象

  • filename (str, optional) – 保存文档的文件名(默认值:None) 如果为None,则从文件名推断。

  • width (int) – 仅当它是 Plot 实例时,导出的布局对象的期望宽度。否则,width 参数将被忽略。

  • height (int) – 仅当它是 Plot 实例时,导出的布局对象的期望高度。否则,height 参数将被忽略。

  • webdriver (selenium.webdriver) – 用于导出图像的selenium webdriver实例。

  • timeout (int) – 等待Bokeh初始化的最大时间(以秒为单位)(默认值:5)(在1.1.1版本中添加)。

  • state (State, 可选) – 一个 State 对象。如果为 None,则使用当前默认的隐式状态。(默认值: None)。

Returns:

保存SVG文件的文件名列表。

Return type:

文件名 (list(str))

警告

响应式 sizing_modes 可能会生成具有意外大小和宽高比的布局。建议使用默认的 fixed 大小模式。

install_notebook_hook(notebook_type: Literal['jupyter', 'zeppelin'], load: Load, show_doc: ShowDoc, show_app: ShowApp, overwrite: bool = False) None[源代码]#

安装一个新的笔记本显示钩子。

Bokeh 内置支持 Jupyter 笔记本。然而,不同的社区使用其他类型的笔记本。此函数为其他项目提供了一种机制,以指示 Bokeh 如何在其他笔记本中显示内容。

此函数主要供希望将Bokeh与新笔记本类型集成的开发人员使用。

Parameters:
  • notebook_type (str) –

    笔记本类型的名称,例如 'Jupyter''Zeppelin'

    如果该名称之前已经安装过,将会引发 RuntimeError,除非 overwrite=True

  • load (callable) –

    一个用于在笔记本类型中加载BokehJS的函数。该函数将使用以下参数调用:

    load(
        resources,   # 一个Resources对象,用于指定如何加载BokehJS
        verbose,     # 是否显示详细的加载横幅
        hide_banner, # 是否完全隐藏输出横幅
        load_timeout # 超时后报告加载失败错误的时间
    )
    

  • show_doc (callable) –

    一个用于在笔记本类型中显示Bokeh独立文档的函数。此函数将使用以下参数调用:

    show_doc(
        obj,            # 要显示的Bokeh对象
        state,          # 当前的bokeh.io "状态"
        notebook_handle # 是否请求了笔记本句柄
    )
    

    如果笔记本平台能够支持图表的就地更新,则此函数可能会返回一个不透明的笔记本句柄,用于此目的。该句柄将由show()返回,并可以由安装钩子的库中的其他函数适当地用于更新图表等。

  • show_app (callable) –

    一个用于在笔记本中显示Bokeh应用程序的函数。该函数将使用以下参数调用:

    show_app(
        app,          # 要显示的Bokeh应用程序
        state,        # 当前的bokeh.io "state"
        notebook_url, # 当前活动笔记本页面的URL
        **kw          # 任何后端特定的关键字,按原样传递
    )
    

  • overwrite (bool, optional) – 是否允许新的定义覆盖现有的钩子(默认值:False)

Returns:

Raises:

RuntimeError – 如果 notebook_type 已经安装并且 overwrite=False

output_file(filename: PathLike, title: str = 'Bokeh Plot', mode: ResourcesMode | None = None, root_dir: PathLike | None = None) None[source]#

配置默认输出状态,以便在调用show()时生成保存到文件的输出。

不会从curdoc()更改当前的Document。文件和笔记本输出可能同时处于活动状态,因此,例如,这不会清除output_notebook()的效果。

Parameters:
  • filename (str) – 用于保存HTML文档的文件名

  • 标题 (str, 可选) – HTML文档的标题(默认:“Bokeh Plot”)

  • mode (str, optional) – 如何包含 BokehJS(默认:'cdn') 可选值之一:'inline', 'cdn', 'relative(-dev)''absolute(-dev)'。更多详情请参见 bokeh.resources.Resources

  • root_dir (str, optional) – 用于“绝对”资源的根目录。(默认值:None) 对于其他资源类型,例如 INLINECDN,此值将被忽略。

Returns:

注意

通常,这应该在交互式会话开始时或脚本的顶部调用。

警告

此输出文件将在每次保存时被覆盖,例如,每次调用 show()save() 时。

output_notebook(resources: 资源 | None = None, verbose: bool = False, hide_banner: bool = False, load_timeout: int = 5000, notebook_type: NotebookType = 'jupyter') None[source]#

配置默认输出状态,以便在调用show()时在笔记本单元格中生成输出。请注意,可以在单个单元格中多次调用show()以在输出单元格中显示多个对象。对象将按顺序显示。

Parameters:
  • 资源 (资源, 可选) – 如何以及从哪里加载BokehJS(默认:CDN)

  • verbose (bool, optional) – 是否显示详细的BokehJS横幅(默认值:False)

  • hide_banner (bool, optional) – 是否隐藏Bokeh横幅(默认值:False)

  • load_timeout (int, optional) – 当图表假设加载超时时的超时时间(单位:毫秒,默认值:5000)

  • notebook_type (string, optional) – 笔记本类型 (默认: jupyter)

Returns:

注意

通常,这应该在交互式会话开始时或脚本的顶部调用。

push_notebook(*, document: Document | None = None, state: State | None = None, handle: CommsHandle | None = None) None[source]#

在Jupyter笔记本的输出单元格中更新Bokeh图表,使用新数据或属性值。

在笔记本中工作时,可以向show函数传递参数notebook_handle=True,这将导致它返回一个句柄对象,该对象可用于稍后更新Bokeh输出。当调用push_notebook时,自上次调用push_notebook或原始show调用以来的任何属性更新(例如图表标题或数据源值等)将应用于先前渲染的Jupyter输出单元格中的Bokeh输出。

在GitHub仓库的examples/output/jupyter/push_notebook目录中可以找到几个示例笔记本。

Parameters:
  • document (Document, 可选) – 一个 Document 用于推送。如果为 None,则使用 curdoc()。(默认值:None)

  • state (State, 可选) – 一个 State 对象。如果为 None,则使用当前的默认状态(由 output_file() 等设置)。(默认值: None)

Returns:

示例

典型用法通常类似于这样:

from bokeh.plotting import figure
from bokeh.io import output_notebook, push_notebook, show

output_notebook()

plot = figure()
plot.circle([1,2,3], [4,6,5])

handle = show(plot, notebook_handle=True)

# Update the plot title in the earlier cell
plot.title.text = "New Title"
push_notebook(handle=handle)
reset_output(state: State | None = None) None[source]#

清除所有输出模式的默认状态。

Returns:

save(obj: UIElement | Sequence[UIElement], filename: str | PathLike[str] | None = None, resources: 资源 | Literal['inline', 'cdn', 'server', 'relative', 'absolute'] | Literal['server-dev', 'relative-dev', 'absolute-dev'] | None = None, title: str | None = None, template: Template | str | None = None, state: State | None = None) str[source]#

保存一个包含当前文档数据的HTML文件。

如果没有提供filenameresourcestitle,将回退到默认的输出状态(或显式提供的State对象)。如果没有提供文件名且未通过输出状态提供,则从脚本名称派生(例如,/foo/myplot.py将创建/foo/myplot.html

Parameters:
  • obj (UIElement 对象) – 要显示的布局(行/列)、绘图或小部件对象

  • filename (PathLike, 例如 str, Path, 可选) – 保存文档的文件名(默认值:None) 如果为None,则使用默认的状态配置。

  • 资源 (ResourcesResourcesMode, 可选) – 要使用的资源配置(默认值:无) 如果为无,则使用默认的状态配置(如果有的话)。 否则使用 resources.INLINE

  • 标题 (str, 可选) – HTML文档的标题(默认值:None) 如果为None,则使用默认的状态标题值(如果有的话)。 否则,使用“Bokeh Plot”

  • template (Template, str, optional) – HTML文档模板(默认:FILE) 一个Jinja2模板,有关所需的模板参数,请参见bokeh.core.templates.FILE

  • state (State, 可选) – 一个 State 对象。如果为 None,则使用当前默认的隐式状态。(默认值: None)。

Returns:

HTML文件保存的文件名。

Return type:

str

show(obj: UIElement | Application | ModifyDoc, browser: str | None = None, new: BrowserTarget = 'tab', notebook_handle: bool = False, notebook_url: str | ProxyUrlFunc = 'localhost:8888', **kwargs: Any) CommsHandle | None[source]#

立即显示一个Bokeh对象或应用程序。

show() 可以在单个 Jupyter notebook 单元格中多次调用,以显示多个对象。对象按顺序显示。

Parameters:
  • obj (UIElementApplicationcallable) –

    要显示的Bokeh对象。

    Bokeh图表、小部件、布局(即行和列)可以传递给show以显示它们。如果已经调用了output_file(),输出将保存到一个HTML文件中,并在新的浏览器窗口或标签页中打开。如果在Jupyter笔记本中调用了output_notebook(),输出将内联显示在相关的笔记本输出单元格中。

    在Jupyter笔记本中,也可以传递Bokeh应用程序或可调用对象。可调用对象将使用FunctionHandler转换为应用程序。应用程序将运行并内联显示在相关的笔记本输出单元格中。

  • browser (str, optional) –

    指定用于打开输出文件的浏览器(默认:无)

    对于文件输出,browser 参数允许指定在哪个浏览器中显示,例如“safari”、“firefox”、“opera”、“windows-default”。并非所有平台都支持此选项,请参阅标准库 webbrowser 模块的文档以获取更多信息。

  • new (str, optional) –

    指定用于输出文件的浏览器模式(默认:“tab”)

    对于文件输出,打开或提升显示当前输出文件的浏览器窗口。如果 new 是 'tab',则打开一个新标签页。如果 new 是 'window',则打开一个新窗口。

  • notebook_handle (bool, optional) –

    是否创建笔记本交互句柄(默认值:False)

    对于笔记本输出,切换是否返回可以与push_notebook一起使用的句柄。请注意,笔记本句柄仅适用于独立图表、布局等。在笔记本中显示应用程序时不适用。

  • notebook_url (URL, 可选) –

    Jupyter笔记本页面的位置(默认:“localhost:8888”)

    在显示Bokeh应用程序时,必须明确配置Bokeh服务器以允许来自不同URL的连接。此参数默认为标准笔记本主机和端口。如果您在不同的位置运行,您需要提供此值以使应用程序正确显示。如果URL中没有提供协议,例如“localhost:8888”,则将使用“http”。

    notebook_url 也可以是一个接受一个整数作为绑定服务器端口的函数。如果提供了端口,该函数需要生成完整的Bokeh服务器公共URL。如果传递了None,则该函数应生成原始URL。

    如果环境变量 JUPYTER_BOKEH_EXTERNAL_URL 设置为JupyterHub的外部URL,则 notebook_url 将被一个可调用对象覆盖,该对象使Bokeh能够在不指定此参数的情况下遍历JupyterHub代理。

某些参数仅在特定输出模式激活时有用:

  • browsernew 参数仅在 output_file() 激活时适用。

  • notebook_handle 参数仅在 output_notebook() 激活且显示非应用程序对象时适用。它仅在 Jupyter notebook 中受支持,当它为 True 时,在其他类型的 notebook 中会引发异常。

  • notebook_url 参数仅在 Jupyter 笔记本中显示 Bokeh 应用程序时适用。

  • 任何额外的关键字参数在显示Bokeh应用程序时都会传递给Server(在1.1版本中添加)

Returns:

当在Jupyter笔记本中(启用了output_notebook())并且notebook_handle=True时,返回一个可以被push_notebook使用的句柄,否则返回None。

bokeh.io.doc#

curdoc() Document[source]#

返回当前默认状态的文档。

Returns:

当前的默认文档对象。

Return type:

Document

patch_curdoc(doc: Document | UnlockedDocumentProxy) Iterator[None][source]#

暂时覆盖curdoc()的值,然后将其恢复到原始状态。

这个上下文管理器在调用函数(例如回调)时,用于控制curdoc()的值非常有用。上下文

Parameters:

文档 (Document) – 用于 curdoc() 的新文档

set_curdoc(doc: Document) None[source]#

配置当前文档(由curdoc()返回)。

Parameters:

文档 (Document) – 用于curdoc()的新文档

Returns:

警告

调用此函数将替换任何现有文档。

bokeh.io.export#

export_png(obj: UIElement | Document, *, filename: PathLike | None = None, width: int | None = None, height: int | None = None, scale_factor: float = 1, webdriver: WebDriver | None = None, timeout: int = 5, state: State | None = None) str[源代码]#

UIElement对象或文档导出为PNG。

如果未提供文件名,则从脚本名称派生(例如 /foo/myplot.py 将创建 /foo/myplot.png

Parameters:
  • obj (UIElementDocument) – 要导出的布局(行/列)、绘图或小部件对象或文档。

  • filename (PathLike, 例如 str, Path, 可选) – 保存文档的文件名(默认值:None) 如果为None,则从文件名推断。

  • width (int) – 仅当它是 Plot 实例时,导出的布局对象的期望宽度。否则,width 参数将被忽略。

  • height (int) – 仅当它是 Plot 实例时,导出的布局对象的期望高度。否则,height 参数将被忽略。

  • scale_factor (float, 可选) – 用于缩放输出PNG的因子,提供更高的分辨率,同时保持元素的相对比例。

  • webdriver (selenium.webdriver) – 用于导出图像的selenium webdriver实例。

  • timeout (int) – 等待Bokeh初始化的最大时间(以秒为单位)(默认值:5)(在1.1.1版本中添加)。

  • state (State, 可选) – 一个 State 对象。如果为 None,则使用当前默认的隐式状态。(默认值: None)。

Returns:

静态文件保存的文件名。

Return type:

文件名 (str)

如果您想直接访问Image对象,而不是将文件保存到磁盘,请使用较低级别的get_screenshot_as_png()函数。

警告

响应式 sizing_modes 可能会生成具有意外大小和宽高比的布局。建议使用默认的 fixed 大小模式。

export_svg(obj: UIElement | Document, *, filename: PathLike | None = None, width: int | None = None, height: int | None = None, webdriver: WebDriver | None = None, timeout: int = 5, state: State | None = None) list[str][source]#

将布局导出为SVG文件或将文档导出为一组SVG文件。

如果未给出文件名,则从脚本名称派生 (例如 /foo/myplot.py 将创建 /foo/myplot.svg

Parameters:
  • obj (UIElement 对象) – 要显示的布局(行/列)、绘图或小部件对象

  • filename (PathLike, 例如 str, Path, 可选) – 保存文档的文件名(默认值:None) 如果为None,则从文件名推断。

  • width (int) – 仅当它是 Plot 实例时,导出的布局对象的期望宽度。否则,width 参数将被忽略。

  • height (int) – 仅当它是 Plot 实例时,导出的布局对象的期望高度。否则,height 参数将被忽略。

  • webdriver (selenium.webdriver) – 用于导出图像的selenium webdriver实例。

  • timeout (int) – 等待Bokeh初始化的最大时间(以秒为单位)(默认值:5)

  • state (State, 可选) – 一个 State 对象。如果为 None,则使用当前默认的隐式状态。(默认值: None)。

Returns:

保存SVG文件的文件名列表。

Return type:

文件名 (list(str))

警告

响应式 sizing_modes 可能会生成具有意外大小和宽高比的布局。建议使用默认的 fixed 大小模式。

export_svgs(obj: UIElement | Document, *, filename: str | None = None, width: int | None = None, height: int | None = None, webdriver: WebDriver | None = None, timeout: int = 5, state: State | None = None) list[str][源代码]#

导出布局中包含SVG支持的图表。每个图表将生成一个单独的SVG文件。

如果未给出文件名,则从脚本名称派生 (例如 /foo/myplot.py 将创建 /foo/myplot.svg

Parameters:
  • obj (UIElement 对象) – 要显示的布局(行/列)、绘图或小部件对象

  • filename (str, optional) – 保存文档的文件名(默认值:None) 如果为None,则从文件名推断。

  • width (int) – 仅当它是 Plot 实例时,导出的布局对象的期望宽度。否则,width 参数将被忽略。

  • height (int) – 仅当它是 Plot 实例时,导出的布局对象的期望高度。否则,height 参数将被忽略。

  • webdriver (selenium.webdriver) – 用于导出图像的selenium webdriver实例。

  • timeout (int) – 等待Bokeh初始化的最大时间(以秒为单位)(默认值:5)(在1.1.1版本中添加)。

  • state (State, 可选) – 一个 State 对象。如果为 None,则使用当前默认的隐式状态。(默认值: None)。

Returns:

保存SVG文件的文件名列表。

Return type:

文件名 (list(str))

警告

响应式 sizing_modes 可能会生成具有意外大小和宽高比的布局。建议使用默认的 fixed 大小模式。

get_layout_html(obj: UIElement | Document, *, resources: 资源 = Resources(mode='inline'), width: int | None = None, height: int | None = None, theme: 主题 | None = None) str[源代码]#
get_screenshot_as_png(obj: UIElement | Document, *, driver: WebDriver | None = None, timeout: int = 5, resources: 资源 = Resources(mode='inline'), width: int | None = None, height: int | None = None, scale_factor: float = 1, state: State | None = None) Image.Image[source]#

获取UIElement对象的截图。

Parameters:
  • obj (UIElementDocument) – 要导出的布局(行/列)、绘图或小部件对象或文档。

  • driver (selenium.webdriver) – 用于导出图像的selenium webdriver实例。

  • timeout (int) – 等待初始化的最长时间。 它将用作加载Bokeh的超时时间,然后在等待布局渲染时使用。

  • scale_factor (float, 可选) – 用于缩放输出PNG的因子,提供更高的分辨率,同时保持元素的相对比例。

  • state (State, 可选) – 一个 State 对象。如果为 None,则使用当前默认的隐式状态。(默认值: None)。

Returns:

从PNG加载的枕头图像。

Return type:

图像 (PIL.Image.Image)

警告

响应式 sizing_modes 可能会生成具有意外大小和宽高比的布局。建议使用默认的 fixed 大小模式。

bokeh.io.notebook#

class CommsHandle(comms: Comm, cell_doc: Document)[源代码]#
destroy_server(server_id: ID) None[源代码]#

给定在Jupyter笔记本中删除或替换的div的UUID id,销毁相应的服务器会话并停止它。

get_comms(target_name: str) Comm[source]#

为特定目标创建一个Jupyter通信对象,该对象可用于在Jupyter笔记本中更新Bokeh文档。

Parameters:

target_name (str) – Comms对象应连接的目标名称

Returns

Jupyter 通信

install_jupyter_hooks() None[源代码]#
install_notebook_hook(notebook_type: Literal['jupyter', 'zeppelin'], load: Load, show_doc: ShowDoc, show_app: ShowApp, overwrite: bool = False) None[源代码]#

安装一个新的笔记本显示钩子。

Bokeh 内置支持 Jupyter 笔记本。然而,不同的社区使用其他类型的笔记本。此函数为其他项目提供了一种机制,以指示 Bokeh 如何在其他笔记本中显示内容。

此函数主要供希望将Bokeh与新笔记本类型集成的开发人员使用。

Parameters:
  • notebook_type (str) –

    笔记本类型的名称,例如 'Jupyter''Zeppelin'

    如果该名称之前已经安装过,将会引发 RuntimeError,除非 overwrite=True

  • load (callable) –

    一个用于在笔记本类型中加载BokehJS的函数。该函数将使用以下参数调用:

    load(
        resources,   # 一个Resources对象,用于指定如何加载BokehJS
        verbose,     # 是否显示详细的加载横幅
        hide_banner, # 是否完全隐藏输出横幅
        load_timeout # 超时后报告加载失败错误的时间
    )
    

  • show_doc (callable) –

    一个用于在笔记本类型中显示Bokeh独立文档的函数。此函数将使用以下参数调用:

    show_doc(
        obj,            # 要显示的Bokeh对象
        state,          # 当前的bokeh.io "状态"
        notebook_handle # 是否请求了笔记本句柄
    )
    

    如果笔记本平台能够支持图表的就地更新,则此函数可能会返回一个不透明的笔记本句柄,用于此目的。该句柄将由show()返回,并可以由安装钩子的库中的其他函数适当地用于更新图表等。

  • show_app (callable) –

    一个用于在笔记本中显示Bokeh应用程序的函数。该函数将使用以下参数调用:

    show_app(
        app,          # 要显示的Bokeh应用程序
        state,        # 当前的bokeh.io "state"
        notebook_url, # 当前活动笔记本页面的URL
        **kw          # 任何后端特定的关键字,按原样传递
    )
    

  • overwrite (bool, optional) – 是否允许新的定义覆盖现有的钩子(默认值:False)

Returns:

Raises:

RuntimeError – 如果 notebook_type 已经安装并且 overwrite=False

load_notebook(resources: 资源 | None = None, verbose: bool = False, hide_banner: bool = False, load_timeout: int = 5000) None[源代码]#

准备用于显示Bokeh图表的IPython笔记本。

Parameters:
  • 资源 (资源, 可选) – 如何以及从哪里加载BokehJS(默认:CDN)

  • verbose (bool, optional) – 是否报告详细设置(默认值:False)

  • hide_banner (bool, optional) – 是否隐藏Bokeh横幅(默认值:False)

  • load_timeout (int, optional) – 当图表假设加载超时时的超时时间(单位:毫秒,默认值:5000)

警告

清除包含已发布的BokehJS资源HTML代码的输出单元格可能会导致Bokeh CSS样式被移除。

Returns:

publish_display_data(data: dict[str, Any], metadata: dict[Any, Any] | None = None, *, transient: dict[str, Any] | None = None, **kwargs: Any) None[source]#
push_notebook(*, document: Document | None = None, state: State | None = None, handle: CommsHandle | None = None) None[source]#

在Jupyter笔记本的输出单元格中更新Bokeh图表,使用新数据或属性值。

在笔记本中工作时,可以向show函数传递参数notebook_handle=True,这将导致它返回一个句柄对象,该对象可用于稍后更新Bokeh输出。当调用push_notebook时,自上次调用push_notebook或原始show调用以来的任何属性更新(例如图表标题或数据源值等)将应用于先前渲染的Jupyter输出单元格中的Bokeh输出。

在GitHub仓库的examples/output/jupyter/push_notebook目录中可以找到几个示例笔记本。

Parameters:
  • document (Document, 可选) – 一个 Document 用于推送。如果为 None,则使用 curdoc()。(默认值:None)

  • state (State, 可选) – 一个 State 对象。如果为 None,则使用当前的默认状态(由 output_file() 等设置)。(默认值: None)

Returns:

示例

典型用法通常类似于这样:

from bokeh.plotting import figure
from bokeh.io import output_notebook, push_notebook, show

output_notebook()

plot = figure()
plot.circle([1,2,3], [4,6,5])

handle = show(plot, notebook_handle=True)

# Update the plot title in the earlier cell
plot.title.text = "New Title"
push_notebook(handle=handle)
run_notebook_hook(notebook_type: Literal['jupyter', 'zeppelin'], action: Literal['load', 'doc', 'app'], *args: Any, **kwargs: Any) Any[source]#

使用提供的参数运行已安装的笔记本钩子。

Parameters:
  • notebook_type (str) – 已安装的笔记本钩子的名称

  • action (str) – 要执行的钩子操作的名称,'doc''app'

所有其他参数和关键字参数都按原样传递给钩子操作。

Returns:

钩子操作的结果,原样返回

Raises:

RuntimeError – 如果钩子或特定操作未安装

show_app(app: Application, state: State, notebook_url: str | ProxyUrlFunc = 'localhost:8888', port: int = 0, **kw: Any) None[源代码]#

在Jupyter Notebook输出单元格中嵌入Bokeh服务器应用程序。

Parameters:
  • app (Application可调用对象) – 一个要在 Jupyter 笔记本中内嵌的 Bokeh 应用程序。

  • state (State) – ** 未使用 **

  • notebook_url (strcallable) –

    运行嵌入式应用程序的笔记本服务器的URL。

    如果 notebook_url 是一个字符串,该字符串值将被解析以构建原始和完整的服务器URL。

    如果 notebook_url 是一个可调用对象,它必须接受一个参数,该参数将是服务器端口或None。如果传递了一个端口,可调用对象必须生成服务器URL,否则如果传递了None,它必须生成服务器的原始URL。

    如果环境变量 JUPYTER_BOKEH_EXTERNAL_URL 设置为 JupyterHub 的外部URL,notebook_url 将被一个可调用对象覆盖,该对象使 Bokeh 能够在无需指定此参数的情况下遍历 JupyterHub 代理。

  • port (int) –

    嵌入式服务器将监听的端口。

    默认情况下,端口为0,这将导致服务器监听一个随机的动态端口。

任何额外的关键字参数都会传递给 Server(在版本1.1中添加)

Returns:

show_doc(obj: Model, state: State) None[源代码]#
show_doc(obj: Model, state: State, notebook_handle: CommsHandle) CommsHandle

bokeh.io.output#

output_file(filename: PathLike, title: str = 'Bokeh Plot', mode: ResourcesMode | None = None, root_dir: PathLike | None = None) None[source]#

配置默认输出状态,以便在调用show()时生成保存到文件的输出。

不会从curdoc()更改当前的Document。文件和笔记本输出可能同时处于活动状态,因此,例如,这不会清除output_notebook()的效果。

Parameters:
  • filename (str) – 用于保存HTML文档的文件名

  • 标题 (str, 可选) – HTML文档的标题(默认:“Bokeh Plot”)

  • mode (str, optional) – 如何包含 BokehJS(默认:'cdn') 可选值之一:'inline', 'cdn', 'relative(-dev)''absolute(-dev)'。更多详情请参见 bokeh.resources.Resources

  • root_dir (str, optional) – 用于“绝对”资源的根目录。(默认值:None) 对于其他资源类型,例如 INLINECDN,此值将被忽略。

Returns:

注意

通常,这应该在交互式会话开始时或脚本的顶部调用。

警告

此输出文件将在每次保存时被覆盖,例如,每次调用 show()save() 时。

output_notebook(resources: 资源 | None = None, verbose: bool = False, hide_banner: bool = False, load_timeout: int = 5000, notebook_type: NotebookType = 'jupyter') None[source]#

配置默认输出状态,以便在调用show()时在笔记本单元格中生成输出。请注意,可以在单个单元格中多次调用show()以在输出单元格中显示多个对象。对象将按顺序显示。

Parameters:
  • 资源 (资源, 可选) – 如何以及从哪里加载BokehJS(默认:CDN)

  • verbose (bool, optional) – 是否显示详细的BokehJS横幅(默认值:False)

  • hide_banner (bool, optional) – 是否隐藏Bokeh横幅(默认值:False)

  • load_timeout (int, optional) – 当图表假设加载超时时的超时时间(单位:毫秒,默认值:5000)

  • notebook_type (string, optional) – 笔记本类型 (默认: jupyter)

Returns:

注意

通常,这应该在交互式会话开始时或脚本的顶部调用。

reset_output(state: State | None = None) None[source]#

清除所有输出模式的默认状态。

Returns:

bokeh.io.saving#

save(obj: UIElement | Sequence[UIElement], filename: str | PathLike[str] | None = None, resources: 资源 | Literal['inline', 'cdn', 'server', 'relative', 'absolute'] | Literal['server-dev', 'relative-dev', 'absolute-dev'] | None = None, title: str | None = None, template: Template | str | None = None, state: State | None = None) str[source]#

保存一个包含当前文档数据的HTML文件。

如果没有提供filenameresourcestitle,将回退到默认的输出状态(或显式提供的State对象)。如果没有提供文件名且未通过输出状态提供,则从脚本名称派生(例如,/foo/myplot.py将创建/foo/myplot.html

Parameters:
  • obj (UIElement 对象) – 要显示的布局(行/列)、绘图或小部件对象

  • filename (PathLike, 例如 str, Path, 可选) – 保存文档的文件名(默认值:None) 如果为None,则使用默认的状态配置。

  • 资源 (ResourcesResourcesMode, 可选) – 要使用的资源配置(默认值:无) 如果为无,则使用默认的状态配置(如果有的话)。 否则使用 resources.INLINE

  • 标题 (str, 可选) – HTML文档的标题(默认值:None) 如果为None,则使用默认的状态标题值(如果有的话)。 否则,使用“Bokeh Plot”

  • template (Template, str, optional) – HTML文档模板(默认:FILE) 一个Jinja2模板,有关所需的模板参数,请参见bokeh.core.templates.FILE

  • state (State, 可选) – 一个 State 对象。如果为 None,则使用当前默认的隐式状态。(默认值: None)。

Returns:

HTML文件保存的文件名。

Return type:

str

bokeh.io.showing#

show(obj: UIElement | Application | ModifyDoc, browser: str | None = None, new: BrowserTarget = 'tab', notebook_handle: bool = False, notebook_url: str | ProxyUrlFunc = 'localhost:8888', **kwargs: Any) CommsHandle | None[source]#

立即显示一个Bokeh对象或应用程序。

show() 可以在单个 Jupyter notebook 单元格中多次调用,以显示多个对象。对象按顺序显示。

Parameters:
  • obj (UIElementApplicationcallable) –

    要显示的Bokeh对象。

    Bokeh图表、小部件、布局(即行和列)可以传递给show以显示它们。如果已经调用了output_file(),输出将保存到一个HTML文件中,并在新的浏览器窗口或标签页中打开。如果在Jupyter笔记本中调用了output_notebook(),输出将内联显示在相关的笔记本输出单元格中。

    在Jupyter笔记本中,也可以传递Bokeh应用程序或可调用对象。可调用对象将使用FunctionHandler转换为应用程序。应用程序将运行并内联显示在相关的笔记本输出单元格中。

  • browser (str, optional) –

    指定用于打开输出文件的浏览器(默认:无)

    对于文件输出,browser 参数允许指定在哪个浏览器中显示,例如“safari”、“firefox”、“opera”、“windows-default”。并非所有平台都支持此选项,请参阅标准库 webbrowser 模块的文档以获取更多信息。

  • new (str, optional) –

    指定用于输出文件的浏览器模式(默认:“tab”)

    对于文件输出,打开或提升显示当前输出文件的浏览器窗口。如果 new 是 'tab',则打开一个新标签页。如果 new 是 'window',则打开一个新窗口。

  • notebook_handle (bool, optional) –

    是否创建笔记本交互句柄(默认值:False)

    对于笔记本输出,切换是否返回可以与push_notebook一起使用的句柄。请注意,笔记本句柄仅适用于独立图表、布局等。在笔记本中显示应用程序时不适用。

  • notebook_url (URL, 可选) –

    Jupyter笔记本页面的位置(默认:“localhost:8888”)

    在显示Bokeh应用程序时,必须明确配置Bokeh服务器以允许来自不同URL的连接。此参数默认为标准笔记本主机和端口。如果您在不同的位置运行,您需要提供此值以使应用程序正确显示。如果URL中没有提供协议,例如“localhost:8888”,则将使用“http”。

    notebook_url 也可以是一个接受一个整数作为绑定服务器端口的函数。如果提供了端口,该函数需要生成完整的Bokeh服务器公共URL。如果传递了None,则该函数应生成原始URL。

    如果环境变量 JUPYTER_BOKEH_EXTERNAL_URL 设置为JupyterHub的外部URL,则 notebook_url 将被一个可调用对象覆盖,该对象使Bokeh能够在不指定此参数的情况下遍历JupyterHub代理。

某些参数仅在特定输出模式激活时有用:

  • browsernew 参数仅在 output_file() 激活时适用。

  • notebook_handle 参数仅在 output_notebook() 激活且显示非应用程序对象时适用。它仅在 Jupyter notebook 中受支持,当它为 True 时,在其他类型的 notebook 中会引发异常。

  • notebook_url 参数仅在 Jupyter 笔记本中显示 Bokeh 应用程序时适用。

  • 任何额外的关键字参数在显示Bokeh应用程序时都会传递给Server(在1.1版本中添加)

Returns:

当在Jupyter笔记本中(启用了output_notebook())并且notebook_handle=True时,返回一个可以被push_notebook使用的句柄,否则返回None。

bokeh.io.state#

封装对Bokeh绘图API有用的隐式状态。

注意

虽然可以显式操作State对象,但当使用来自bokeh.io的输出函数如output_file()时,它们会自动配置。因此,通常不需要操作State对象。

生成Bokeh图表的输出需要协调几个方面:

Document

将可能在绘图之间共享的Bokeh模型(例如,范围或数据源对象)组合成一个共同的结构。

Resources

控制客户端库 BokehJS 的 JavaScript 和 CSS 在生成输出中的包含和使用方式。

可以手动处理这些配置,一些示例可以在examples/models目录中找到。在开发复杂的应用程序时,可能需要或希望在这个级别上工作。然而,对于一般用途来说,这很快就会变得繁琐。本模块提供了一个State类,它封装了这些对象,并确保在许多常见使用场景中正确配置它们。

class State[source]#

管理与控制Bokeh输出相关的状态。

output_file(filename: str | PathLike[str], title: str = 'Bokeh Plot', mode: Literal['inline', 'cdn', 'server', 'relative', 'absolute'] | Literal['server-dev', 'relative-dev', 'absolute-dev'] | None = None, root_dir: str | PathLike[str] | None = None) None[source]#

配置输出到一个独立的HTML文件。

调用 output_file 不会清除任何其他调用(如 output_notebook() 等)的效果。它会添加一个额外的输出目的地(发布到HTML文件)。任何其他活动的输出模式将继续保持活动状态。

Parameters:
  • filename (PathLike, 例如 str, Path) – 用于保存HTML文档的文件名

  • 标题 (str, 可选) – HTML文档的标题

  • mode (str, optional) –

    如何包含 BokehJS(默认:'cdn'

    可选值之一:'inline', 'cdn', 'relative(-dev)''absolute(-dev)'。更多详情请参见 Resources

  • root_dir (str, optional) –

    用于绝对资源的根目录 (默认值: None)

    对于其他资源类型,例如 INLINECDN,此值将被忽略。

警告

指定的输出文件将在每次保存时被覆盖,例如,每次调用show()save()时。

output_notebook(notebook_type: NotebookType = 'jupyter') None[source]#

在笔记本单元格中生成输出。

调用 output_notebook 不会清除任何其他调用(如 output_file() 等)的效果。它增加了一个额外的输出目的地(发布到笔记本输出单元格)。任何其他活动的输出模式将继续保持活动状态。

Returns:

reset() None[source]#

停用所有当前活动的输出模式,并将curdoc()设置为一个新的空Document

在激活新的输出模式之前,对 show() 的后续调用将不会渲染。

Returns:

property document: Document#

用于所有输出操作的默认Document

property file: FileConfig | None#

一个包含文件输出默认配置的结构(只读)

参见 FileConfig

property notebook: bool#

是否在显示操作时生成笔记本输出。(只读)

property notebook_type: NotebookType | None#

笔记本类型

curstate() State[source]#

返回当前的State对象

Returns:

当前的默认状态对象

Return type:

State

bokeh.io.util#

default_filename(ext: str) str[source]#

生成一个带有给定扩展名的默认文件名,尽可能尝试使用当前运行进程的文件名。

如果当前进程的文件名不可用(或不可写),则返回具有给定扩展名的临时文件。

Parameters:

ext (str) – 文件名的所需扩展名

Returns:

字符串

Raises:

RuntimeError – 如果请求的扩展名是“.py”

detect_current_filename() str | None[source]#

尝试返回当前运行的Python进程的文件名

如果无法检测到文件名,则返回 None。

temp_filename(ext: str) str[source]#

生成一个具有给定扩展名的临时可写文件名