这可能不是最优雅的答案,但如果您想要做的不仅仅是将每个图放在页面上,它也非常灵活。您可以使用LaTeX 将所有图形导出为图像后收集到一个 pdf 中。这是一个示例,我们将图形保存为report/imgs/*.png,然后编写一个report/report.tex 文件并将其与pdflatex 编译成最终的report/report.pdf。
import numpy as np
import matplotlib.pyplot as plt
创建并保存两个图像:
plt.bar(np.arange(5), np.arange(5)*2)
plt.savefig('report/imgs/fig1.png')
plt.bar(np.arange(6), np.arange(6)**2 - 1, color = 'g')
plt.savefig('report/imgs/fig2.png')
编写一个.tex 文件以显示两个图像:
img_data = ['fig1', 'fig2']
latex_src = '\\documentclass{article}\n'
latex_src += '\\usepackage{graphicx}\n'
latex_src += '\\graphicspath{{./imgs/}}\n'
latex_src += '\\begin{document}\n'
for image in img_data:
latex_src += '\t\\begin{figure}[h]\n'
latex_src += f'\t\t\\includegraphics{{{image}}}\n'
latex_src += '\t\\end{figure}\n'
latex_src += '\\end{document}'
with open('report/report.tex', 'w', encoding = 'utf-8') as handle:
handle.write(latex_src)
print(latex_src)
\documentclass{article}
\usepackage{graphicx}
\graphicspath{{./imgs/}}
\begin{document}
\begin{figure}[h]
\includegraphics{fig1}
\end{figure}
\begin{figure}[h]
\includegraphics{fig2}
\end{figure}
\end{document}
最后编译:
!cd report && pdflatex report.tex