我需要一份包含很多图表的PDF报告。它们中的大多数将在一个循环中使用matplotlib创建,但是我还需要包括熊猫图和数据框(整个视图)以及seaborn图。现在,我探索了以下解决方案:
savefig
命令,并将所有图保存为图像,以便稍后将所有图插入。这也是非常耗时的选择。另一个选择是使用该命令将图另存为pdf,然后合并所有pdf。这将创建一个难看的报告,因为这些图将无法容纳整个页面。 所以我的问题是:是否有任何简便快捷的方法来以合理的方式将所有这些图(如果沿着代码生成的图更好地生成)在PDF中?
答案 0 :(得分:2)
我的建议是对config
缓冲区使用matplotlibs new_p = p.copy()
new_p.update(config)
(或将缓冲区保存到100的列表或类似数据结构中)。然后,您可以使用这些图像缓冲区使用savefig
(网站here和docs here)之类的库将图像插入pdf。我经常使用这种方法通过BytesIO
库创建PowerPoint文档,但也使用reportlab
通过PDF对其进行了验证。 python-pptx
库非常强大,有点“低级”,因此可能会有一些学习入门的入门知识,但肯定可以满足您的需求。有一个简单的入门教程here。 reportlab是BSD许可,可在pip和conda上获得。
无论如何,我的代码段如下所示。
抱歉,它有点长,但是我的代码具有一些帮助功能,可以打印文本和虚拟图像。您应该可以直接复制/粘贴。
reportlab