Matplotlib: многостраничный PDF с растеризованными сюжетами

Я генерирую многостраничный PDF, используя следующий код. Так как у меня будет около 3000 участков, по 10 на страницы. PDF может стать UGE. Я хотел бы заменить каждый сюжет jpg или pdf-версией. Но я не уверен, как это сделать в бэкэнде PdfPage.

plots_per_page = 10
col_per_page = 1

with PdfPages('NewPDF.pdf') as pdf:
    for pgg in range(0,pages):

        fig = figure(figsize=(8,20) )
        gs1 = gridspec.GridSpec(plots_per_page//col_per_page, col_per_page)

        for i in arange(0,10):
            ax = fig.add_subplot(gs1[i])
            ax.bar(arange(20), random.normal(0,1,20), linewidth = 0.5)

        gs1.tight_layout(fig , h_pad=0.8, w_pad=0.8)
        axis('auto')

        savefig(pdf, format='pdf')
        close()

1 ответ

Решение

Думаю, у вас есть проблема, аналогичная этому вопросу: растеризация нескольких элементов в matplotlib

Как и в одном из ответов, используйте:

ax = fig.add_subplot(111, rasterized=True)

или сделать:

ax.set_rasterized(True)

Затем вы можете установить разрешение для графиков, если хотите еще больше увеличить размер файла:

savefig(pdf, format='pdf', dpi=300)
Другие вопросы по тегам