【发布时间】:2015-09-16 12:08:57
【问题描述】:
我必须创建一组 matplotlib 图形,我想直接在 PDF 报告中呈现而不将它们保存为文件。
我的绘图数据存储在 Pandas DataFrame 中:
目前我不知道比先保存图像并稍后使用它更好的选择。
我正在做这样的事情:
import matplotlib.pylab as plt
from reportlab.platypus import BaseDocTemplate, Image
for index, row in myDataFrame.iterrows():
fig = plt.figure()
plt.plot(row['Xvalues'], row['Yvalues'],'o', color='r')
fig.savefig('figure_%s.png' % (row['ID']))
plt.close(fig)
text = []
doc = BaseDocTemplate(pageName, pagesize=landscape(A4))
for f in listdir(myFolder):
if f.endswith('png'):
image1 = Image(f)
text.append(image1)
doc.build(text)
【问题讨论】:
-
我现在的工作流程是这样的: 1. 创建一堆图形 2. 将图形另存为 .png 3. 将 .png 图形发送到 PDF 所以问题是我是否可以跳过这一步2 并从创建图形到在 PDF 上呈现它们
-
您也许可以为此使用内存映射文件,但我不确定 Matplotlib 和 Platypus 是否支持这些:docs.python.org/2/library/mmap.html
标签: python pandas matplotlib reportlab