7.2. Многостраничный PDF документ

Иногда, требуется сохранить целую серию графиков. Конечно мы можем сохранить их в виде отдельных картинок в специально отведенной директории, но просмотр таких картинок не очень удобен. Гораздо удобнее сохранять такие серии графиков в виде pdf документа. Для этого достаточно воспользоваться одним backend_pdf. Допустим у нас есть 25 графиков, давайте посмотрим как их можно поместить в один pdf-документ:

import numpy as np
from matplotlib import pyplot as plt

#  Импортируем pdf-backend:
from matplotlib.backends.backend_pdf import PdfPages

#  Создаем многостраничный pdf файл:
pdf_file = PdfPages('Laplace.pdf')

#  Параметры распределения Лапласа:
loc = np.linspace(1, 2, 5)
scale = np.linspace(5, 10, 5)

for l in loc:
    fig, axes = plt.subplots(5, 1)
    for s in scale:
        laplace = np.random.laplace(l, s, size=1000)
        i = list(scale).index(s)
        axes[i].violinplot(laplace, vert = False)
        axes[i].set_title('scale = ' + str(s))
    fig.suptitle('loc = ' + str(l), y = 0.92, x = 0.51, fontsize = 15)
    fig.set_figheight(10)
    #  Увеличим расстояние между Axes:
    fig.subplots_adjust(hspace=0.5)
    #  Сохраняем область "Figure" на отдельной странице:
    pdf_file.savefig(fig)

#  Сохраняем и закрываем документ:
pdf_file.close()

Пример, конечно не самый удачный, но он демонстрирует суть: сначала, pdf_file = PdfPages('Laplace.pdf') мы создаем многостраничный pdf-документ, а затем, командой pdf_file.savefig(fig) сохраняем вновь полученную фигуру на отдельной странице документа.