Это, вероятно, не самый элегантный ответ, но он также чрезвычайно гибок, если вы хотите сделать больше, чем просто разместить каждый график на странице. Вы можете использовать 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