如何使用Bokeh保存为png或jpg而不是html文件?
我需要把我用Bokeh制作的图表和图形导出成图片。
通常我会这样做:
output_file("test.html")
不过,我想把这个图复制到Excel表格里。它不需要再是互动的,虽然如果能互动那就太好了。请问我该怎么把这个图导出成图片呢?我想用代码来实现,而不是点击“预览/保存”。
2 个回答
0
另外,如果你愿意使用JavaScript的话,比如说你想同时保存多个画布(每个画布都有一个图表),你可以用JavaScript的方法 canvas.toDataUrl()
把画布转换成png格式的base64编码。拿到所有的图片后,你可以随意处理这些图片。这些图片的分辨率是96dpi,无法更改,所以如果你想要更高的分辨率,就得在转换之前调整图表中所有元素的大小,比如字体、坐标轴、图表大小等等。
如果你采用这种方法,就不需要在你的Python环境中安装 selenium
和 phantomjs
这些依赖了。
另外,要注意的是,如果你使用 export_png
并且导出的图表尺寸更大,那么坐标轴和字体的大小不会成比例增大。
15
从 Bokeh 的版本 0.12.6
开始,你可以直接通过 Python 代码导出 PNG 和 SVG 格式的图像了。
导出 PNG 图像的代码示例如下:
export_png(plot, filename="plot.png")
而导出 SVG 图像的代码示例如下:
plot.output_backend = "svg"
export_svgs(plot, filename="plot.svg")
不过,有一些可选的依赖库需要先安装。你可以在 用户指南的导出图表部分 找到更多信息。