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 (UIElementDocument) – 要导出的布局(Row/Column)、Plot 或 Widget 对象或 Document。

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

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

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

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

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

  • timeout (int) – 等待 Bokeh 初始化的最长时间(秒)(默认值:5)(在 1.1.1 中添加)。

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

返回:

静态文件保存的文件名。

返回类型:

filename (str)

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

警告

响应式 sizing_modes 可能会生成尺寸和纵横比意外的布局。建议使用默认的 fixed sizing mode。

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 对象) – 要显示的布局(Row/Column)、Plot 或 Widget 对象

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

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

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

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

  • timeout (int) – 等待 Bokeh 初始化的最长时间(秒)(默认值:5)

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

返回:

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

返回类型:

filenames (list(str))

警告

响应式 sizing_modes 可能会生成尺寸和纵横比意外的布局。建议使用默认的 fixed sizing mode。

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 对象) – 要显示的布局(Row/Column)、Plot 或 Widget 对象

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

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

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

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

  • timeout (int) – 等待 Bokeh 初始化的最长时间(秒)(默认值:5)(在 1.1.1 中添加)。

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

返回:

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

返回类型:

filenames (list(str))

警告

响应式 sizing_modes 可能会生成尺寸和纵横比意外的布局。建议使用默认的 fixed sizing mode。

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, 可选) – 是否允许新定义覆盖现有钩子(默认值:False)

返回:

None

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

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

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

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

  • root_dir (str, 可选) – 用于 ‘absolute’ 资源的根目录。(默认值:None)此值对于其他资源类型(例如 INLINECDN)将被忽略。

返回:

None

注意

通常,应在交互式会话的开始或脚本的顶部调用此方法。

警告

每次保存时,此输出文件都将被覆盖,例如,每次调用 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() 时在 notebook 单元格中生成输出。 请注意,在单个单元格中可以多次调用 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) – Notebook 类型 (默认值:jupyter)

返回:

None

注意

通常,应在交互式会话的开始或脚本的顶部调用此方法。

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

使用新数据或属性值更新 Jupyter notebook 输出单元格中的 Bokeh 绘图。

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

几个示例 notebook 可以在 GitHub 存储库的 examples/output/jupyter/push_notebook 目录中找到。

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

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

返回:

None

示例

典型用法通常类似于这样

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

output_notebook()

plot = figure()
plot.scatter([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]#

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

返回:

None

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 对象) – 要显示的布局(Row/Column)、Plot 或 Widget 对象

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

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

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

  • template (Template, str, optional) – HTML 文档模板 (默认值: FILE)。 Jinja2 模板,有关必需的模板参数,请参阅 bokeh.core.templates.FILE。

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

返回:

HTML 文件保存到的文件名。

返回类型:

str

show(obj: UIElement | Sequence[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 对象或应用程序。

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

参数:
  • obj (UIElementUIElement[] 或 Applicationcallable) –

    要显示的 Bokeh 对象。

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

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

  • browser (str, optional) –

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

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

  • new (str, optional) –

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

    对于文件输出,打开或提升显示当前输出文件的浏览器窗口。 如果 new 为 ‘tab’,则打开一个新选项卡。 如果 new 为 ‘window’,则打开一个新窗口。

  • notebook_handle (bool, optional) –

    是否创建 notebook 交互句柄(默认值:False)

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

  • notebook_url (URL, optional) –

    Jupyter notebook 页面的位置(默认值:“localhost:8888”)

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

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

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

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

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

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

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

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

返回:

当在 Jupyter notebook 中(启用 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() 的值很有用。

参数:

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

set_curdoc(doc: Document) None[source]#

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

参数:

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

返回:

None

警告

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

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 (UIElementDocument) – 要导出的布局(Row/Column)、Plot 或 Widget 对象或 Document。

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

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

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

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

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

  • timeout (int) – 等待 Bokeh 初始化的最长时间(秒)(默认值:5)(在 1.1.1 中添加)。

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

返回:

静态文件保存的文件名。

返回类型:

filename (str)

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

警告

响应式 sizing_modes 可能会生成尺寸和纵横比意外的布局。建议使用默认的 fixed sizing mode。

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 对象) – 要显示的布局(Row/Column)、Plot 或 Widget 对象

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

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

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

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

  • timeout (int) – 等待 Bokeh 初始化的最长时间(秒)(默认值:5)

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

返回:

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

返回类型:

filenames (list(str))

警告

响应式 sizing_modes 可能会生成尺寸和纵横比意外的布局。建议使用默认的 fixed sizing mode。

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 对象) – 要显示的布局(Row/Column)、Plot 或 Widget 对象

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

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

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

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

  • timeout (int) – 等待 Bokeh 初始化的最长时间(秒)(默认值:5)(在 1.1.1 中添加)。

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

返回:

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

返回类型:

filenames (list(str))

警告

响应式 sizing_modes 可能会生成尺寸和纵横比意外的布局。建议使用默认的 fixed sizing mode。

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 (UIElementDocument) – 要导出的布局(Row/Column)、Plot 或 Widget 对象或 Document。

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

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

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

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

返回:

从 PNG 加载的 pillow 图像。

返回类型:

image (PIL.Image.Image)

警告

响应式 sizing_modes 可能会生成尺寸和纵横比意外的布局。建议使用默认的 fixed sizing mode。

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, 可选) – 是否允许新定义覆盖现有钩子(默认值:False)

返回:

None

Raises:

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 样式被移除。

返回:

None

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 notebook 输出单元格中的 Bokeh 绘图。

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

几个示例 notebook 可以在 GitHub 存储库的 examples/output/jupyter/push_notebook 目录中找到。

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

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

返回:

None

示例

典型用法通常类似于这样

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

output_notebook()

plot = figure()
plot.scatter([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 hook。

参数:
  • notebook_type (str) – 现有已安装 notebook hook 的名称

  • action (str) – 要执行的 hook 动作的名称,'doc''app'

所有其他参数和关键字参数都按原样传递给 hook 动作。

返回:

hook 动作的结果,原样返回

Raises:

RuntimeError – 如果未安装 hook 或特定动作

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

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

参数:
  • app (Applicationcallable) – 要内联嵌入到 Jupyter notebook 中的 Bokeh 应用程序。

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

  • notebook_url (strcallable) –

    运行嵌入式应用程序的 notebook 服务器的 URL。

    如果 notebook_url 是字符串,则解析该字符串值以构造 origin 和完整的服务器 URL。

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

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

  • port (int) –

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

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

任何其他关键字参数都将传递给 Server (在 1.1 版本中添加)

返回:

None

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, 可选) – HTML 文档的标题(默认值:“Bokeh Plot”)

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

  • root_dir (str, 可选) – 用于 ‘absolute’ 资源的根目录。(默认值:None)此值对于其他资源类型(例如 INLINECDN)将被忽略。

返回:

None

注意

通常,应在交互式会话的开始或脚本的顶部调用此方法。

警告

每次保存时,此输出文件都将被覆盖,例如,每次调用 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() 时在 notebook 单元格中生成输出。 请注意,在单个单元格中可以多次调用 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) – Notebook 类型 (默认值:jupyter)

返回:

None

注意

通常,应在交互式会话的开始或脚本的顶部调用此方法。

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

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

返回:

None

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 对象) – 要显示的布局(Row/Column)、Plot 或 Widget 对象

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

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

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

  • template (Template, str, optional) – HTML 文档模板 (默认值: FILE)。 Jinja2 模板,有关必需的模板参数,请参阅 bokeh.core.templates.FILE。

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

返回:

HTML 文件保存到的文件名。

返回类型:

str

bokeh.io.showing#

show(obj: UIElement | Sequence[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 (UIElementUIElement[] 或 Applicationcallable) –

    要显示的 Bokeh 对象。

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

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

  • browser (str, optional) –

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

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

  • new (str, optional) –

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

    对于文件输出,打开或提升显示当前输出文件的浏览器窗口。 如果 new 为 ‘tab’,则打开一个新选项卡。 如果 new 为 ‘window’,则打开一个新窗口。

  • notebook_handle (bool, optional) –

    是否创建 notebook 交互句柄(默认值:False)

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

  • notebook_url (URL, optional) –

    Jupyter notebook 页面的位置(默认值:“localhost:8888”)

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

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

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

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

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

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

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

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

返回:

当在 Jupyter notebook 中(启用 output_notebook())且 notebook_handle=True 时,返回可由 push_notebook 使用的句柄,否则返回 None。

bokeh.io.state#

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

注意

虽然 State 对象也可以显式操作,但当使用来自 bokeh.iooutput_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 文件)。任何其他活动的输出模式将继续处于活动状态。

参数:
  • 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]#

在 notebook 单元格中生成输出。

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

返回:

None

reset() None[source]#

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

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

返回:

None

property document: Document#

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

property file: FileConfig | None#

具有文件输出的默认配置的结构 (只读)

请参阅 FileConfig

property notebook: bool#

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

property notebook_type: NotebookType | None#

Notebook 类型

curstate() State[source]#

返回当前 State 对象

返回:

当前的默认 State 对象

返回类型:

State

bokeh.io.util#

default_filename(ext: str) str[source]#

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

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

参数:

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

返回:

str

Raises:

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

detect_current_filename() str | None[source]#

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

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

temp_filename(ext: str) str[source]#

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