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)