Matplotlib PDF后端速度慢?

5

我正在使用matplotlib将一千个图绘制到PDF上。已经优化了绘图代码,即重复使用figure/axes/lines并只更改y数据。

剩余的大部分时间都花在了save_figure上。

R相比之下似乎可以更快地输出PDF图。在R中,所有零数据的图似乎甚至更快,而在Python中它们的速度相同。

我已经将pdf.compression设置为0,这使得有所改善。

尝试将数据光栅化,对绘图速度没有影响(尽管使用了大量RAM)。

还有什么其他方法可以加速matplotlib对PDF后端的处理,或者是否有任何替代后端可供考虑?我想要超过R。

谢谢!


你是否只能使用 PDF,或者可以尝试使用 EPS/SVG?你是否只能使用矢量图形? - tacaswell
不限于矢量图形。最终需要PDF格式。如果其他格式速度显著更快,则可以考虑其他格式,但最终需要一种将它们转换为PDF的方法。 - peu ping
你可以尝试将图像导出为eps格式 fig.savefig('blah.eps'),然后使用epspdf进行转换。 - tacaswell
你可以尝试这样做:https://gist.github.com/astrofrog/1453933 - G. Poore
1个回答

0
你尝试过 Gael Varoquaux 的 pyreport 吗?你可以在你的脚本中调用它,然后它会收集所有对 pylab.show() 的调用,制作每个调用的 png 图像,然后从这些图像创建 PDF。
最终它使用了 Latex,所以你需要安装它。但我认为这可能会更快,因为 PDF 的创建被委托给了 Latex。

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