在bokeh中将绘图网格导出为.svg文件

3

我正在使用Bokeh库的代码这里,尝试将整个绘图(而不是文本)导出为.svg文件。

问题在于,如果我尝试以下方法:

from bokeh.io import export_png
plot.output_backend = "svg"
export_svgs(plot, filename="plot.svg")

我遇到了NameError: name 'plot' is not defined错误。

如果我将'plot'替换为'grid',则会给出一个属性错误。

如何将整个gridplot导出为.svg文件?


已经有一个问题来处理这个问题。我希望它会在2.0版本中得到解决。同时,您可以像我在这个例子中所做的那样,将收集到的所有SVG导出为PDF报告。 - ChesuCR
1个回答

2
你不能。SVG导出是通过将标准的HTML光栅画布替换为可以在进行标准HTML画布绘图调用时输出SVG的“CanvasSVG”来实现的。但是Bokeh网格图不在一个巨大的HTML画布上。它们是一个独立的HTML画布网格,这意味着只有可能针对每个子图(如果你分别为每个子图打开output_backend = "svg")获得单独的SVG。
更新:如果有用的话,有人在Discourse上报告了使用pdflib进行后处理以将SVG拼接在一起的情况: https://discourse.bokeh.org/t/generate-svg-images-from-bokeh-plots-and-include-them-in-a-pdf-report-with-using-svglib-and-reportlab/3889

谢谢。导出文件并最大化其分辨率,我的最佳选择是什么?导出为PNG是另一个最佳选项吗? - Jan Rostenkowski
您可以通过将尺寸传递给 export_png 来以任何分辨率导出 PNG。或者,我听说可以以某种方式拼接多个 SVG。因此,这可能是一个选项,但我没有亲身经历,所以除了提到这种可能性外,我无法做更多的事情。 - bigreddot

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