PNG 和 SVG 导出#

额外依赖项#

使用导出功能,您需要以下额外依赖项

您可以通过多种方式安装这些依赖项。推荐的方式是使用 conda 并与 geckodriver 一起安装 Selenium。

conda install selenium geckodriver -c conda-forge

为了使 geckodriver 正常工作,您还需要在系统上安装 Firefox。请参阅 geckodriver 文档中的支持平台,确保您的 Firefox 版本兼容。

您也可以从 conda-forge 安装 Firefox

conda install firefox -c conda-forge

使用 conda 安装 Firefox 有助于确保您运行的是 geckodriver 和 Firefox 的兼容版本。

conda install selenium python-chromedriver-binary -c conda-forge

使用 conda 下载并安装后,请确保可执行文件 chromedriver (chromedriver.exe 在 Windows 上) 可在您的 PATH 中找到。有关更多信息,请参阅chromedriver-binary 文档

ChromeDriver 需要您的系统上安装了兼容版本的 Google Chrome 或 Chromium。有关 ChromeDriver 的哪个版本与 Chrome 或 Chromium 的哪个版本兼容的详细信息,请参阅ChromeDriver 文档

pip install selenium

安装 Selenium 后,您需要从GitHub 上的 geckodriver 仓库下载并安装 geckodriver 二进制文件。确保 geckodriver 可在您的 PATH 中找到。有关更多信息,请参阅geckodriver 文档

为了使 geckodriver 正常工作,您还需要在系统上安装 Firefox。请参阅 geckodriver 文档中的支持平台,确保您的 Firefox 版本兼容。

pip install selenium chromedriver-binary

使用 pip 下载并安装后,请确保可执行文件 chromedriver (chromedriver.exe 在 Windows 上) 可在您的 PATH 中找到。有关更多信息,请参阅chromedriver-binary 文档

ChromeDriver 需要您的系统上安装了兼容版本的 Google Chrome 或 Chromium。有关 ChromeDriver 的哪个版本与 Chrome 或 Chromium 的哪个版本兼容的详细信息,请参阅ChromeDriver 文档

导出 PNG 图像#

Bokeh 可以使用export_png() 函数从布局生成 RGBA 格式的便携式网络图形 (PNG) 图像。此功能在内存中渲染布局,然后捕获屏幕截图。输出图像将与源布局具有相同的尺寸。

要创建具有透明背景的 PNG,请将 Plot.background_fill_colorPlot.border_fill_color 属性设置为 None

plot.background_fill_color = None
plot.border_fill_color = None

尺寸可变性#

响应式尺寸模式可能会生成尺寸和纵横比意外的布局。为了获得可靠的结果,请使用默认的 fixed 尺寸模式。

示例用法#

用法类似于save()show() 函数。

from bokeh.io import export_png

export_png(plot, filename="plot.png")
A categorical heatmap of monthly US unemployment data from 1948 to 2016 exported as a PNG. The x-axis is years and the y-axis is month of the year.

图像对象#

要通过代码访问图像对象而不保存到文件,请使用更低级的函数get_screenshot_as_png()

from bokeh.io.export import get_screenshot_as_png

image = get_screenshot_as_png(obj, height=height, width=width, driver=webdriver)

导出 SVG 图像#

Bokeh 还可以用可缩放矢量图形 (SVG) 元素替换 HTML5 Canvas 绘图输出,该元素可以在 Adobe Illustrator 等图像编辑程序中编辑,或者转换为 PDF。

在渲染大量图形或处理大量用户交互(例如平移)时,SVG 输出的性能不如默认的 Canvas 后端。

要激活 SVG 后端,请将 Plot.output_backend 属性设置为 "svg"

# option one
plot = Plot(output_backend="svg")
# option two
plot.output_backend = "svg"

要创建具有透明背景的 SVG,请将 Plot.background_fill_colorPlot.border_fill_color 属性设置为 None,与 PNG 导出相同。

您可以通过多种方式导出 SVG 绘图

  • 使用代码

    • 使用export_svg() 实用程序函数,它允许您将绘图或绘图布局保存为单个 SVG 文件。

      from bokeh.io import export_svg
      
      export_svg(plot, filename="plot.svg")
      
    • 使用export_svgs() 实用程序函数,它允许您将绘图布局导出为一组独立的 SVG 文件。

      from bokeh.io import export_svgs
      
      export_svgs(plot, filename="plot.svg")
      
  • 从浏览器

    • 使用SVG-Crowbar 书签工具,它会添加一个提示,让您将每个绘图下载为 SVG 文件。此工具与 Chrome 完全兼容,并且在大多数情况下应与 Firefox 一起使用。

    • 使用工具栏中的 SaveTool,但请注意,导出的文件将在工具栏所在的位置留下一块空白区域。

A categorical heatmap of monthly US unemployment data from 1948 to 2016 exported as an SVG. The x-axis is years and the y-axis is month of the year.