Bokeh 导出图片
除了上面描述的子命令外,Bokeh图可以用export()函数导出为PNG和SVG文件格式。为此目的,本地Python安装应该有以下依赖库。
PhantomJS
PhantomJS是一个JavaScript API,可以实现自动导航、屏幕截图、用户行为和断言。它被用来运行基于浏览器的单元测试。PhantomJS基于WebKit,为不同的浏览器提供类似的浏览环境,并为各种网络标准提供快速和本地支持。DOM处理、CSS选择器、JSON、Canvas和SVG。换句话说,PhantomJS是一个没有图形用户界面的网络浏览器。
Pillow
Pillow,一个Python图像库(早期称为PIL)是一个Python编程语言的免费库,提供对打开、操作和保存许多不同图像文件格式的支持。(包括PPM、PNG、JPEG、GIF、TIFF和BMP。)它的一些功能是按像素操作、屏蔽和透明度处理、图像过滤、图像增强等。
export_png()函数从布局中生成RGBA格式的PNG图像。该函数使用 Webkit 无头浏览器在内存中渲染布局,然后捕捉屏幕截图。生成的图像将与源布局的尺寸相同。请确保 Plot.background_fill_color 和 Plot.border_fill_color 的属性为 None。
from bokeh.io import export_png
export_png(plot, filename = "file.png")
有可能的是,HTML5 Canvas情节输出的是SVG元素,可以使用Adobe Illustrator等程序进行编辑。SVG对象也可以转换为PDF。在这里,canvas2svg,一个JavaScript库被用来用SVG元素模拟正常的Canvas元素及其方法。和PNG一样,为了创建一个透明背景的SVG,Plot.background_fill_color和Plot.border_fill_color属性应该是无。
首先通过设置Plot.output_backend属性为 “svg “来激活SVG后端。
plot.output_backend = "svg"
对于无头导出,Bokeh有一个实用的函数, export_svgs()。这个函数将下载一个布局中所有支持SVG的图,作为不同的SVG文件。
from bokeh.io import export_svgs
plot.output_backend = "svg"
export_svgs(plot, filename = "plot.svg")