导出绘图

附加依赖项

为了使用 export() 函数时,用户可能需要安装其他依赖项。一种选择是通过conda安装:

conda install selenium geckodriver firefox -c conda-forge

或者,可以使用 chromedriverchromium 浏览器(或其变体之一)。通常,现代系统上至少有一个兼容的浏览器可用,因此可能不需要安装web浏览器。Bokeh将搜索可用的浏览器(和驱动程序),并使用可用的浏览器,除非另有配置。

PNG生成

Bokeh可以使用 export_png() 功能。此功能使用名为WebKit的无头浏览器在内存中呈现布局,然后捕获屏幕截图。生成的图像将与源布局具有相同的尺寸。

为了创建具有透明背景的PNG,用户应该设置 Plot.background_fill_colorPlot.border_fill_color 属性到 None .

局限性

响应大小调整模式可能会生成具有意外大小和纵横比的布局。建议使用默认值 fixed 调整大小模式。

示例用法

用法类似于 save()show() 功能。

from bokeh.io import export_png

export_png(plot, filename="plot.png")
../../_images/unemployment1.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画布绘图输出,SVG元素可以在图像编辑程序(如Adobe Illustrator)中编辑和/或转换为PDF格式。

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

与PNGs一样,为了创建具有透明背景的SVG,用户应该设置 Plot.background_fill_colorPlot.border_fill_color 属性到 None .

局限性

不可能为一个绘图布局创建一个SVG,因为每个plot都是它自己不同的SVG元素。或者,也可以使用工具栏上的SaveTool下载SVG绘图。但是,当前,带有工具栏的绘图的SVG导出将有一个空白区域,其中工具栏在浏览器中呈现。

示例用法

通过设置 Plot.output_backend 属性到 "svg" .

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

导出SVG图像

手动导出SVG绘图的最简单方法是安装来自《纽约时报》的浏览器bookmarklet SVG-Crowbar . 单击时,它会运行一段JavaScript代码,并在页面上添加一个下载绘图的提示。它是为Chrome编写的,在大多数情况下应该可以与Firefox一起使用。

或者,也可以使用SVG的 SaveTool ,但工具栏不会被捕获,尽管它在打印布局解算器计算中显示出来。这不是很好,但却是一个可行的选择。

对于无头输出,有一个效用函数, export_svgs() ,其用法与 save()show() 功能。此函数将下载布局中所有启用SVG的绘图,作为不同的SVG文件。

from bokeh.io import export_svgs

plot.output_backend = "svg"
export_svgs(plot, filename="plot.svg")
../../_images/unemployment.svg