我需要导出使用 Bokeh 创建的图形和绘图的图片。
通常我会
output_file("test.html")
但是,我想将该图复制到 Excel 工作表中。它不再必须是交互式的,尽管那会很棒。如何将图表导出为图片?使用代码,而不是点击“预览/保存”。
从 Bokeh0.12.6
开始,现在可以直接从 Python 代码导出 PNG 和 SVG。
导出 PNG 看起来像这样
export_png(plot, filename="plot.png")
导出 SVG 看起来像这样
plot.output_backend = "svg"
export_svgs(plot, filename="plot.svg")
有一些可选的依赖项需要安装。您可以在用户指南的导出绘图部分找到更多信息。
或者,如果您愿意使用 JavaScript。而且,例如,如果您想同时保存许多画布(每个画布元素都有一个绘图),您可以使用 JavaScript 方法canvas.toDataUrl()
将画布转换为 base64 格式的 png。当您获得所有图像时,您可以对它们做任何您想做的事情。这些图像有 96dpi 并且无法更改,因此如果您想要更高的分辨率,您还必须在转换之前更新绘图的所有元素的大小:字体、轴、绘图大小......
如果你使用这种方法,你不需要在你的 python 环境中安装selenium
和依赖。phantomjs
另外,请注意,如果您使用export_png
并导出更大尺寸的图,则轴和字体不会按比例变大