bokeh.io#

curdoc() Document[source]#

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

返回值:

当前默认文档对象。

返回类型:

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[source]#

UIElement对象或文档导出为 PNG。

如果未给出文件名,则从脚本名称推断(例如,/foo/myplot.py 将创建 /foo/myplot.png)。

参数:
  • obj (UIElement or Document) – 要导出的布局(Row/Column)、绘图或小部件对象或文档。

  • filename (PathLike, e.g. str, Path, optional) – 要保存文档的文件名(默认:None)。如果为 None,则从文件名推断。

  • width (int) – 导出的布局 obj 的所需宽度,仅当它是 Plot 实例时。否则,宽度关键字参数将被忽略。

  • height (int) – 导出的布局 obj 的所需高度,仅当它是 Plot 实例时。否则,高度关键字参数将被忽略。

  • scale_factor (float, optional) – 用于按比例缩放输出 PNG 的系数,在保持元素相对比例的同时提供更高分辨率。

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

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

  • state (State, optional) – State 对象。如果为 None,则使用当前默认隐式状态。(默认:None)。

返回值:

保存静态文件的文件名。

返回类型:

filename (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)。

参数:
  • obj (UIElement object) – 要显示的布局(Row/Column)、绘图或小部件对象

  • filename (PathLike, e.g. str, Path, optional) – 要保存文档的文件名(默认:None)。如果为 None,则从文件名推断。

  • width (int) – 导出的布局 obj 的所需宽度,仅当它是 Plot 实例时。否则,宽度关键字参数将被忽略。

  • height (int) – 导出的布局 obj 的所需高度,仅当它是 Plot 实例时。否则,高度关键字参数将被忽略。

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

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

  • state (State, optional) – State 对象。如果为 None,则使用当前默认隐式状态。(默认:None)。

返回值:

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

返回类型:

filenames (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][source]#

导出布局内的支持 SVG 的绘图。每个绘图都将生成一个独立的 SVG 文件。

如果未提供文件名,则从脚本名称推断(例如,/foo/myplot.py 将创建 /foo/myplot.svg)。

参数:
  • obj (UIElement object) – 要显示的布局(Row/Column)、绘图或小部件对象

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

  • width (int) – 导出的布局 obj 的所需宽度,仅当它是 Plot 实例时。否则,宽度关键字参数将被忽略。

  • height (int) – 导出的布局 obj 的所需高度,仅当它是 Plot 实例时。否则,高度关键字参数将被忽略。

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

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

  • state (State, optional) – State 对象。如果为 None,则使用当前默认隐式状态。(默认:None)。

返回值:

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

返回类型:

filenames (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[source]#

安装新的笔记本显示挂钩。

Bokeh 附带对 Jupyter 笔记本的内置支持。但是,不同的社区使用着其他类型的笔记本。此函数提供了一种机制,使其他项目能够指示 Bokeh 如何在其他笔记本中显示内容。

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

参数:
  • notebook_type (str) –

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

    如果该名称已安装,则将引发 RuntimeError,除非 overwrite=True

  • load (callable) –

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

    load(
        resources,   # A Resources object for how to load BokehJS
        verbose,     # Whether to display verbose loading banner
        hide_banner, # Whether to hide the output banner entirely
        load_timeout # Time after which to report a load fail error
    )
    

  • show_doc (callable) –

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

    show_doc(
        obj,            # the Bokeh object to display
        state,          # current bokeh.io "state"
        notebook_handle # whether a notebook handle was requested
    )
    

    如果笔记本平台能够支持对绘图的进行就地更新,则此函数可能会返回一个不透明的笔记本句柄,可用于此目的。该句柄将由 show() 返回,并且可以根据需要由安装了挂钩的库中的其他函数使用,以更新绘图等。

  • show_app (callable) –

    用于在笔记本类型中显示 Bokeh 应用程序的函数。此函数将使用以下参数调用

    show_app(
        app,          # the Bokeh Application to display
        state,        # current bokeh.io "state"
        notebook_url, # URL to the current active notebook page
        **kw          # any backend-specific keywords passed as-is
    )
    

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

返回值:

引发:

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() 的效果。

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

  • title (str, optional) – HTML 文档的标题 (默认值:“Bokeh Plot”)

  • mode (str, optional) – 如何包含 BokehJS (默认值:'cdn') 之一:'inline''cdn''relative(-dev)''absolute(-dev)'。有关更多详细信息,请参阅 bokeh.resources.Resources

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

返回值:

注意

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

警告

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

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

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

参数:
  • resources (Resource, optional) – 如何以及从何处加载 BokehJS (默认值:CDN)

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

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

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

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

返回值:

注意

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

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 目录中找到几个示例笔记本。

参数:
  • document (Document, optional) – 要从中推送的 Document。如果为无,则使用 curdoc()。 (默认值:无)

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

返回值:

示例

典型的用法通常类似于此

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

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

返回值:

save(obj: UIElement | Sequence[UIElement], filename: str | PathLike[str] | None = None, resources: 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

参数:
  • obj (UIElement object) – 要显示的布局(Row/Column)、绘图或小部件对象

  • filename (PathLike, e.g. str, Path, optional) – 要保存文档的文件名(默认值:无)如果为无,则使用默认状态配置。

  • resources (Resources or ResourcesMode, optional) – 要使用的 Resources 配置(默认值:无)如果为无,则使用默认状态配置(如果存在)。 否则使用 resources.INLINE

  • title (str, optional) – HTML 文档的标题(默认值:无)如果为无,则使用默认状态标题值(如果存在)。 否则使用“Bokeh Plot”

  • template (Template, str, optional) – HTML 文档模板(默认值:FILE)一个 Jinja2 模板,请参阅 bokeh.core.templates.FILE 以了解所需的模板参数

  • state (State, optional) – State 对象。如果为 None,则使用当前默认隐式状态。(默认:None)。

返回值:

保存 HTML 文件的文件名。

返回类型:

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 单元格中多次调用以显示多个对象。 对象按顺序显示。

参数:
  • obj (UIElement or Application or callable) –

    要显示的 Bokeh 对象。

    Bokeh 图表、小部件、布局(即行和列)可以传递给 show 以显示它们。 如果已调用 output_file(),则输出将保存到 HTML 文件,该文件也会在新浏览器窗口或选项卡中打开。 如果已在 Jupyter notebook 中调用 output_notebook(),则输出将内联显示在关联的 notebook 输出单元格中。

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

  • browser (str, optional) –

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

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

  • new (str, 可选) –

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

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

  • notebook_handle (bool, 可选) –

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

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

  • notebook_url (URL, 可选) –

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

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

    notebook_url 也可以是一个函数,它接收一个用于绑定服务器端口的 int。如果提供端口,则该函数需要生成到 bokeh 服务器的完整公共 URL。如果传递了 None,则该函数应生成源 URL。

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

某些参数仅在某些输出模式处于活动状态时才有用。

  • output_file() 处于活动状态时,browsernew 参数才适用。

  • output_notebook() 处于活动状态,并且正在显示非应用程序对象时,notebook_handle 参数才适用。它仅在 Jupyter 笔记本中受支持,并且当它为 True 时会为其他笔记本类型引发异常。

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

  • 任何其他关键字参数都将传递到 Server,用于显示 Bokeh 应用程序(在版本 1.1 中添加)。

返回值:

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

bokeh.io.doc#

curdoc() Document[source]#

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

返回值:

当前默认文档对象。

返回类型:

Document

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

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

此上下文管理器用于在调用函数(例如回调)时控制 curdoc() 的值。cont

参数:

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

set_curdoc(doc: Document) None[source]#

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

参数:

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

返回值:

警告

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

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[source]#

UIElement对象或文档导出为 PNG。

如果未给出文件名,则从脚本名称推断(例如,/foo/myplot.py 将创建 /foo/myplot.png)。

参数:
  • obj (UIElement or Document) – 要导出的布局(Row/Column)、绘图或小部件对象或文档。

  • filename (PathLike, e.g. str, Path, optional) – 要保存文档的文件名(默认:None)。如果为 None,则从文件名推断。

  • width (int) – 导出的布局 obj 的所需宽度,仅当它是 Plot 实例时。否则,宽度关键字参数将被忽略。

  • height (int) – 导出的布局 obj 的所需高度,仅当它是 Plot 实例时。否则,高度关键字参数将被忽略。

  • scale_factor (float, optional) – 用于按比例缩放输出 PNG 的系数,在保持元素相对比例的同时提供更高分辨率。

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

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

  • state (State, optional) – State 对象。如果为 None,则使用当前默认隐式状态。(默认:None)。

返回值:

保存静态文件的文件名。

返回类型:

filename (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)。

参数:
  • obj (UIElement object) – 要显示的布局(Row/Column)、绘图或小部件对象

  • filename (PathLike, e.g. str, Path, optional) – 要保存文档的文件名(默认:None)。如果为 None,则从文件名推断。

  • width (int) – 导出的布局 obj 的所需宽度,仅当它是 Plot 实例时。否则,宽度关键字参数将被忽略。

  • height (int) – 导出的布局 obj 的所需高度,仅当它是 Plot 实例时。否则,高度关键字参数将被忽略。

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

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

  • state (State, optional) – State 对象。如果为 None,则使用当前默认隐式状态。(默认:None)。

返回值:

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

返回类型:

filenames (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]/foo/myplot.py 将创建 /foo/myplot.svg)。

参数:
  • obj (UIElement object) – 要显示的布局(Row/Column)、绘图或小部件对象

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

  • width (int) – 导出的布局 obj 的所需宽度,仅当它是 Plot 实例时。否则,宽度关键字参数将被忽略。

  • height (int) – 导出的布局 obj 的所需高度,仅当它是 Plot 实例时。否则,高度关键字参数将被忽略。

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

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

  • state (State, optional) – State 对象。如果为 None,则使用当前默认隐式状态。(默认:None)。

返回值:

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

返回类型:

filenames (list(str))

警告

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

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

获取UIElement 对象的屏幕截图。

参数:
  • obj (UIElement or Document) – 要导出的布局(Row/Column)、绘图或小部件对象或文档。

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

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

  • scale_factor (float, optional) – 用于按比例缩放输出 PNG 的系数,在保持元素相对比例的同时提供更高分辨率。

  • state (State, optional) – State 对象。如果为 None,则使用当前默认隐式状态。(默认:None)。

返回值:

从 PNG 加载的枕头图像。

返回类型:

image (PIL.Image.Image)

警告

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

bokeh.io.notebook#

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

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

get_comms(target_name: str) Comm[source]#

为特定目标创建一个 Jupyter Comms 对象,可用于更新 Jupyter Notebook 中的 Bokeh 文档。

参数:

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

返回

Jupyter Comms

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

安装新的笔记本显示挂钩。

Bokeh 附带对 Jupyter 笔记本的内置支持。但是,不同的社区使用着其他类型的笔记本。此函数提供了一种机制,使其他项目能够指示 Bokeh 如何在其他笔记本中显示内容。

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

参数:
  • notebook_type (str) –

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

    如果该名称已安装,则将引发 RuntimeError,除非 overwrite=True

  • load (callable) –

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

    load(
        resources,   # A Resources object for how to load BokehJS
        verbose,     # Whether to display verbose loading banner
        hide_banner, # Whether to hide the output banner entirely
        load_timeout # Time after which to report a load fail error
    )
    

  • show_doc (callable) –

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

    show_doc(
        obj,            # the Bokeh object to display
        state,          # current bokeh.io "state"
        notebook_handle # whether a notebook handle was requested
    )
    

    如果笔记本平台能够支持对绘图的进行就地更新,则此函数可能会返回一个不透明的笔记本句柄,可用于此目的。该句柄将由 show() 返回,并且可以根据需要由安装了挂钩的库中的其他函数使用,以更新绘图等。

  • show_app (callable) –

    用于在笔记本类型中显示 Bokeh 应用程序的函数。此函数将使用以下参数调用

    show_app(
        app,          # the Bokeh Application to display
        state,        # current bokeh.io "state"
        notebook_url, # URL to the current active notebook page
        **kw          # any backend-specific keywords passed as-is
    )
    

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

返回值:

引发:

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

load_notebook(resources: Resources | None = None, verbose: bool = False, hide_banner: bool = False, load_timeout: int = 5000) None[source]#

准备 IPython Notebook 以显示 Bokeh 图表。

参数:
  • resources (Resource, optional) – 如何以及从哪里加载 BokehJS(默认:CDN)

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

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

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

警告

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

返回值:

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 目录中找到几个示例笔记本。

参数:
  • document (Document, optional) – 要从中推送的 Document。如果为无,则使用 curdoc()。 (默认值:无)

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

返回值:

示例

典型的用法通常类似于此

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

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

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

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

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

返回值:

钩子操作的结果,按原样

引发:

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

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

将 Bokeh 服务器应用程序嵌入 Jupyter 笔记本的输出单元格中。

参数:
  • app (Application or callable) – 要在 Jupyter 笔记本中内联嵌入的 Bokeh 应用程序。

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

  • notebook_url (str or callable) –

    运行嵌入式应用程序的笔记本服务器的 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 版中添加)

返回值:

show_doc(obj: Model, state: State) None[source]#
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() 的效果。

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

  • title (str, optional) – HTML 文档的标题 (默认值:“Bokeh Plot”)

  • mode (str, optional) – 如何包含 BokehJS (默认值:'cdn') 之一:'inline''cdn''relative(-dev)''absolute(-dev)'。有关更多详细信息,请参阅 bokeh.resources.Resources

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

返回值:

注意

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

警告

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

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

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

参数:
  • resources (Resource, optional) – 如何以及从何处加载 BokehJS (默认值:CDN)

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

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

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

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

返回值:

注意

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

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

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

返回值:

bokeh.io.saving#

save(obj: UIElement | Sequence[UIElement], filename: str | PathLike[str] | None = None, resources: 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

参数:
  • obj (UIElement object) – 要显示的布局(Row/Column)、绘图或小部件对象

  • filename (PathLike, e.g. str, Path, optional) – 要保存文档的文件名(默认值:无)如果为无,则使用默认状态配置。

  • resources (Resources or ResourcesMode, optional) – 要使用的 Resources 配置(默认值:无)如果为无,则使用默认状态配置(如果存在)。 否则使用 resources.INLINE

  • title (str, optional) – HTML 文档的标题(默认值:无)如果为无,则使用默认状态标题值(如果存在)。 否则使用“Bokeh Plot”

  • template (Template, str, optional) – HTML 文档模板(默认值:FILE)一个 Jinja2 模板,请参阅 bokeh.core.templates.FILE 以了解所需的模板参数

  • state (State, optional) – State 对象。如果为 None,则使用当前默认隐式状态。(默认:None)。

返回值:

保存 HTML 文件的文件名。

返回类型:

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 单元格中多次调用来显示多个对象。对象按顺序显示。

参数:
  • obj (UIElement or Application or callable) –

    要显示的 Bokeh 对象。

    Bokeh 图表、小部件、布局(即行和列)可以传递给 show 以显示它们。 如果已调用 output_file(),则输出将保存到 HTML 文件,该文件也会在新浏览器窗口或选项卡中打开。 如果已在 Jupyter notebook 中调用 output_notebook(),则输出将内联显示在关联的 notebook 输出单元格中。

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

  • browser (str, optional) –

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

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

  • new (str, 可选) –

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

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

  • notebook_handle (bool, 可选) –

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

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

  • notebook_url (URL, 可选) –

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

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

    notebook_url 也可以是一个函数,它接收一个用于绑定服务器端口的 int。如果提供端口,则该函数需要生成到 bokeh 服务器的完整公共 URL。如果传递了 None,则该函数应生成源 URL。

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

某些参数仅在某些输出模式处于活动状态时才有用。

  • output_file() 处于活动状态时,browsernew 参数才适用。

  • output_notebook() 处于活动状态,并且正在显示非应用程序对象时,notebook_handle 参数才适用。它仅在 Jupyter 笔记本中受支持,并且当它为 True 时会为其他笔记本类型引发异常。

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

  • 任何其他关键字参数都将传递到 Server,用于显示 Bokeh 应用程序(在版本 1.1 中添加)。

返回值:

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

bokeh.io.state#

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

注意

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

生成 Bokeh 图表的输出需要协调多项内容

Document

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

资源

控制客户端库 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 文件)。任何其他活动的输出模式都会继续处于活动状态。

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

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

  • mode (str, 可选) –

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

    其中之一:'inline', 'cdn', 'relative(-dev)''absolute(-dev)'。有关详细信息,请参阅 Resources

  • root_dir (str, 可选) –

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

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

警告

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

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

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

调用 output_notebook 不会清除对 output_file() 等其他函数的任何调用的影响。它添加了一个额外的输出目标(发布到笔记本输出单元格)。任何其他处于活动状态的输出模式将继续处于活动状态。

返回值:

reset() None[source]#

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

show() 的后续调用将不会呈现,直到激活新的输出模式。

返回值:

property document: Document#

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

property file: FileConfig | None#

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

参见 FileConfig

property notebook: bool#

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

property notebook_type: NotebookType | None#

笔记本类型

curstate() State[source]#

返回当前 State 对象

返回值:

当前默认 State 对象

返回类型:

State

bokeh.io.util#

default_filename(ext: str) str[source]#

使用给定扩展名生成默认文件名,如果可能,尝试使用当前运行进程的文件名。

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

参数:

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

返回值:

str

引发:

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

detect_current_filename() str | None[source]#

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

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

temp_filename(ext: str) str[source]#

使用给定扩展名生成一个临时可写文件名