bokeh.io#
- 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 或 Document) – 要导出的布局(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 文件的文件名列表。
- 返回类型:
警告
响应式 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 文件的文件名列表。
- 返回类型:
警告
响应式 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)此值对于其他资源类型(例如
INLINE
或CDN
)将被忽略。
- 返回:
None
注意
通常,应在交互式会话的开始或脚本的顶部调用此方法。
- 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)
- 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 文件。
如果未提供
filename
、resources
或title
,将回退到默认输出状态(或显式提供的State
对象)。 如果未给出文件名且未通过输出状态提供,则文件名将从脚本名称派生(例如,/foo/myplot.py
将创建/foo/myplot.html
)- 参数:
obj (UIElement 对象) – 要显示的布局(Row/Column)、Plot 或 Widget 对象
filename (PathLike, 例如 str, Path, optional) – 用于保存文档的文件名(默认值:None)。 如果为 None,则使用默认状态配置。
resources (Resources 或 ResourcesMode, 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 文件保存到的文件名。
- 返回类型:
- 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 (UIElement 或 UIElement[] 或 Application 或 callable) –
要显示的 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()
处于活动状态时,browser
和new
参数才适用。仅当
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#
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 或 Document) – 要导出的布局(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 文件的文件名列表。
- 返回类型:
警告
响应式 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 文件的文件名列表。
- 返回类型:
警告
响应式 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 (UIElement 或 Document) – 要导出的布局(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#
- 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_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 图形。
- 参数:
警告
清除包含已发布的 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。
所有其他参数和关键字参数都按原样传递给 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 (Application 或 callable) – 要内联嵌入到 Jupyter notebook 中的 Bokeh 应用程序。
state (State) – ** 未使用 **
notebook_url (str 或 callable) –
运行嵌入式应用程序的 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)此值对于其他资源类型(例如
INLINE
或CDN
)将被忽略。
- 返回:
None
注意
通常,应在交互式会话的开始或脚本的顶部调用此方法。
- 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
注意
通常,应在交互式会话的开始或脚本的顶部调用此方法。
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 文件。
如果未提供
filename
、resources
或title
,将回退到默认输出状态(或显式提供的State
对象)。 如果未给出文件名且未通过输出状态提供,则文件名将从脚本名称派生(例如,/foo/myplot.py
将创建/foo/myplot.html
)- 参数:
obj (UIElement 对象) – 要显示的布局(Row/Column)、Plot 或 Widget 对象
filename (PathLike, 例如 str, Path, optional) – 用于保存文档的文件名(默认值:None)。 如果为 None,则使用默认状态配置。
resources (Resources 或 ResourcesMode, 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 文件保存到的文件名。
- 返回类型:
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 (UIElement 或 UIElement[] 或 Application 或 callable) –
要显示的 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()
处于活动状态时,browser
和new
参数才适用。仅当
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.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 文件)。任何其他活动的输出模式将继续处于活动状态。- 参数:
警告
每次保存时,指定的输出文件将被覆盖,例如,每次调用
show()
或save()
时。
- output_notebook(notebook_type: NotebookType = 'jupyter') None [source]#
在 notebook 单元格中生成输出。
调用
output_notebook
不会清除对output_file()
等任何其他调用的影响。它添加了一个额外的输出目标(发布到 notebook 输出单元格)。任何其他活动的输出模式将继续处于活动状态。- 返回:
None