PNG和SVG导出#

额外的依赖项#

您将需要以下额外的依赖项来使用导出功能:

  • Selenium

  • 以下任意一个web drivers

    • 用于Firefox的geckodriver

    • 用于Chrome / Chromium的ChromeDriver

你可以通过多种方式安装这些依赖项。推荐的方法是使用 conda 并同时安装 Selenium 和 geckodriver。

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(在Windows上为chromedriver.exe)在您的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(在Windows上为chromedriver.exe)在您的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.