使用Bokeh,如何保存到png或jpg而不是html文件?

时间:2014-06-05 12:24:53

标签: python bokeh

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

通常我做

output_file("test.html")

但是,我想将该图表复制到Excel工作表中。 它不再是交互式的,尽管那会很棒。 如何将图形导出为图片?使用代码,而不是点击“预览/保存”。

4 个答案:

答案 0 :(得分:13)

从Bokeh 0.12.6开始,现在可以直接导出PNG和SVG Python代码。

导出PNG看起来像这样

export_png(plot, filename="plot.png")

导出SVG看起来像这样

plot.output_backend = "svg"
export_svgs(plot, filename="plot.svg")

需要安装一些可选的依赖项。 您可以在Exporting Plots section of the User Guide

中找到更多信息

答案 1 :(得分:0)

或者,如果您愿意使用JavaScript。并且,例如,如果您想同时保存许多画布(每个画布元素都有一个图),则可以使用JavaScript方法canvas.toDataUrl()将画布转换为base64的png。当您获得所有图像时,您可以对它们进行任何操作。这些图像具有96dpi的分辨率,无法更改,因此,如果要获得更高的分辨率,则还必须在转换之前更新绘图的所有元素的大小:字体,轴,绘图大小...

如果使用这种方法,则无需在python环境中安装seleniumphantomjs依赖项。

另外,请注意,如果使用export_png并以更大的尺寸导出图,the axis and fonts are not going to be proportionally bigger

答案 2 :(得分:-4)

好的,纠正自己,我想念你关于不使用预览/保存的部分...... 目前,我们没有提供将Bokeh图输出到png文件的直接编程方法。即使使用内部函数,您也需要用户交互。 我们可以在功能中添加这样的功能。

干杯。

答案 3 :(得分:-4)

我昨天问了一个类似的问题。链接的解决方案可能适合您。基本上你在网页中打开文件,拍摄一个屏幕截图,然后你可以裁剪并保存为图像。

Python open html file, take screenshot, crop and save as image