为了使用 export() 函数时,用户可能需要安装其他依赖项。一种选择是通过conda安装:
export()
conda install selenium geckodriver firefox -c conda-forge
或者,可以使用 chromedriver 和 chromium 浏览器(或其变体之一)。通常,现代系统上至少有一个兼容的浏览器可用,因此可能不需要安装web浏览器。Bokeh将搜索可用的浏览器(和驱动程序),并使用可用的浏览器,除非另有配置。
chromedriver
chromium
Bokeh可以使用 export_png() 功能。此功能使用名为WebKit的无头浏览器在内存中呈现布局,然后捕获屏幕截图。生成的图像将与源布局具有相同的尺寸。
export_png()
为了创建具有透明背景的PNG,用户应该设置 Plot.background_fill_color 和 Plot.border_fill_color 属性到 None .
Plot.background_fill_color
Plot.border_fill_color
None
响应大小调整模式可能会生成具有意外大小和纵横比的布局。建议使用默认值 fixed 调整大小模式。
fixed
用法类似于 save() 和 show() 功能。
save()
show()
from bokeh.io import export_png export_png(plot, filename="plot.png")
如果希望直接在代码中访问图像对象而不是将图像保存到文件中,则可以使用较低级别的函数 get_screenshot_as_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)
Bokeh还支持用SVG元素替换HTML5画布绘图输出,SVG元素可以在图像编辑程序(如Adobe Illustrator)中编辑和/或转换为PDF格式。
在渲染大量字形或处理大量用户交互(如平移)时,SVG输出的性能不如默认画布后端。
与PNGs一样,为了创建具有透明背景的SVG,用户应该设置 Plot.background_fill_color 和 Plot.border_fill_color 属性到 None .
不可能为一个绘图布局创建一个SVG,因为每个plot都是它自己不同的SVG元素。或者,也可以使用工具栏上的SaveTool下载SVG绘图。但是,当前,带有工具栏的绘图的SVG导出将有一个空白区域,其中工具栏在浏览器中呈现。
通过设置 Plot.output_backend 属性到 "svg" .
Plot.output_backend
"svg"
# option one plot = Plot(output_backend="svg") # option two plot.output_backend = "svg"
手动导出SVG绘图的最简单方法是安装来自《纽约时报》的浏览器bookmarklet SVG-Crowbar . 单击时,它会运行一段JavaScript代码,并在页面上添加一个下载绘图的提示。它是为Chrome编写的,在大多数情况下应该可以与Firefox一起使用。
或者,也可以使用SVG的 SaveTool ,但工具栏不会被捕获,尽管它在打印布局解算器计算中显示出来。这不是很好,但却是一个可行的选择。
SaveTool
对于无头输出,有一个效用函数, export_svgs() ,其用法与 save() 和 show() 功能。此函数将下载布局中所有启用SVG的绘图,作为不同的SVG文件。
export_svgs()
from bokeh.io import export_svgs plot.output_backend = "svg" export_svgs(plot, filename="plot.svg")