我需要导出我用Bokeh创建的图形和图形的图片。
通常我做
output_file("test.html")
但是,我想将该图表复制到Excel工作表中。 它不再是交互式的,尽管那会很棒。 如何将图形导出为图片?使用代码,而不是点击“预览/保存”。
答案 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环境中安装selenium
和phantomjs
依赖项。
另外,请注意,如果使用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