python - 使用 python 包 docx 将绘图直接添加到文档中

标签 python matplotlib docx python-docx

我正在绘制一些数据,并且想自动生成报告。我可以保存该图,然后将其添加到我的文档中。但是,我更喜欢直接执行,而不保存步骤。浏览 python-docx 文档我怀疑这个包是否可行。还有别的办法吗?

我的代码现在看起来像这样

from docx import Document
from docx.shared import Inches
import matplotlib.pyplot as plt
import numpy as np

t = np.arange(0.0, 2.0, 0.01)
s = 1 + np.sin(2*np.pi*t)
plt.plot(t, s)
plt.savefig('test.png')

document = Document()
document.add_heading('Report',0)
document.add_picture('test.png', width=Inches(1.25))

document.save('report.docx')

最佳答案

尝试在 python 3 中使用以下代码直接将绘图保存在文档中。

from docx import Document
from docx.shared import Inches
import matplotlib.pyplot as plt
import numpy as np
from pandas.compat import BytesIO

memfile = BytesIO()
t = np.arange(0.0, 2.0, 0.01)
s = 1 + np.sin(2*np.pi*t)
plt.plot(t, s)
plt.savefig(memfile)

document = Document()
document.add_heading('Report',0)
document.add_picture(memfile, width=Inches(1.25))

document.save('report.docx')
memfile.close()

关于python - 使用 python 包 docx 将绘图直接添加到文档中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53536286/

相关文章:

Python - 使用 Txt 文件数据绘制图形

Python/BeautifulSoup - 提取 div 内容检查 h1 文本

python - 如何绘制列中的某些值(子图)

python - 如何在matplotlib中分离堆积的条形图?

java - 使用 Apache POI 双向处理 Word 文档

python - 使用可变长度参数python创建一个函数

python - 在 Python 中执行 get 请求

python - 通过文本框交互式 matplotlib 图

java - 为什么 Docx4j 不从 docx 文件中删除内容控件?

java - 使用 Java Servlet 合并 Oracle 中的多个 BLOB 以下载到 .docx 文件中