首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组合matplotlib和reportlab

组合matplotlib和reportlab
EN

Stack Overflow用户
提问于 2020-03-04 04:42:14
回答 1查看 107关注 0票数 0

我希望结合matplotlib和reportlab库来创建一个pdf报告。我特别想在这个pdf中显示一个数据帧。经过一些研究,我设法得到了以下代码:

代码语言:javascript
复制
import numpy as np
import pandas as pd


from reportlab.platypus import SimpleDocTemplate
from reportlab.lib.pagesizes import letter


from reportlab.platypus import Table


df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar','foo', 'bar', 'foo', 'foo'], 'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'], 'C': np.random.randn(8),'D': np.random.randn(8)})
data = df.groupby('A').sum()

print(data)
filename = 'dataframe.pdf'

pdf = SimpleDocTemplate(filename, pagesize = letter)


lista = [data.columns[:,].values.astype(str).tolist()] + data.values.tolist()
table = Table(lista)

#PDF construction
elems = []
elems.append(table)

pdf.build(elems)

我在pdf上得到了这个结果:https://zupimages.net/viewer.php?id=20/10/t22g.png

我发现渲染并不糟糕,特别是因为它没有显示左侧轴的标题。我知道它应该放在lista变量中,但我并不真正了解其中的语法。

另一种解决方案是将数据帧导出为html,然后将其转换为png。为此,我安装了pypandoc库,但无法在互联网上找到将html转换为png的代码……

EN

回答 1

Stack Overflow用户

发布于 2020-05-22 06:52:05

我也在为同样的问题而苦苦挣扎--如何将Matplotlib和Reportlab结合起来。

其方法如下:您将单独创建一个图,将其保存为临时图片,然后自动获取此图片并将其添加到pdf中。我对此最初持怀疑态度,但已经使用了更长时间,现在它是一个非常好的解决方案,它快速而准确。

我建议你研究一下这个答案,你还需要安装pdfrw

Is there a matplotlib flowable for ReportLab?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60515191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档