PNG和SVG导出#
额外的依赖项#
您将需要以下额外的依赖项来使用导出功能:
以下任意一个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_color和Plot.border_fill_color属性设置为None。
plot.background_fill_color = None
plot.border_fill_color = None
尺寸可变性#
响应式尺寸模式可能会生成大小和宽高比意外的布局。为了获得可靠的结果,请使用默认的fixed尺寸模式。
示例用法#
from bokeh.io import export_png
export_png(plot, filename="plot.png")
图像对象#
要通过代码访问图像对象而不保存到文件,请使用较低级别的函数 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_color 和 Plot.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,但请注意导出的文件在工具栏所在的位置会有一个空白区域。