使用 Bokeh,如何将文件保存为 png 或 jpg 格式而不是 html 文件?

24

我需要导出我用Bokeh创建的图形和绘图的图片。

通常我这样做:

output_file("test.html")

然而,我想将那个图表复制到Excel工作表中。 虽然不需要再进行交互,但那会很出色。 我要如何将图表导出为图片?使用代码,而非点击“预览/保存”。


1
在我看来,HTML是bokeh session management中唯一的(文件)选项,您可以使用这个工具将HTML转换为JPG。 - Kobi K
我没有安装PyQt的权限。 - user2366975
尝试阅读这篇帖子。 - Kobi K
似乎这只适用于文本。 - user2366975
2个回答

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")

有一些可选的依赖需要安装。你可以在用户指南的导出图表部分找到更多信息。


export_png函数会增加我的运行时间约15秒,你有同样的经历吗? - user8678484
是的,我也有这种经历。 - Temak

0

或者,如果您愿意使用JavaScript。例如,如果您想同时保存许多画布(每个画布元素都有一个图),则可以使用JavaScript方法canvas.toDataUrl()将画布转换为png格式的base64。当您获取所有图像后,可以随心所欲地处理它们。这些图像具有96dpi,无法更改,因此,如果您需要更高的分辨率,则必须在转换之前更新绘图的所有元素的大小:字体、轴、绘图大小...

如果您使用此方法,则不需要在Python环境中安装seleniumphantomjs依赖项。

此外,请注意,如果您使用export_png并且导出的绘图尺寸更大,则轴和字体不会成比例增加


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接