matplotlib PdfPages - хранение потерянной копии сюжета с большим количеством данных

Я создаю графики с помощью matplotlib.pyplot и записываю их в pdf. Некоторые из этих графиков имеют большие (до 100 000) точки и, очевидно, имеют много точек пересечения, то есть определенные части графика представляют собой просто сплошную массу. (Это нормально - мне интересно, как выглядят более редкие части графика.)

Когда я сохраняю эти графики в формате pdf, запись занимает много времени, а чтение в формате pdf еще хуже. Есть ли способ сохранить "потерянную" копию сюжета в формате PDF? Например, если бы я сделал снимок экрана с графиком и вставил его в PDF, он загрузился бы намного быстрее.

1 ответ

Решение

Я рекомендую попробовать построить с опцией rasterized:

pts = np.random.rand(2, 100000)
plt.scatter(*pts, rasterized=True)
plt.savefig('rast.pdf')

Для сравнения:

plt.scatter(*pts)
plt.savefig('reg.pdf')

А также

$ ls -lh tmp*.pdf
177K Dec  9 22:03 tmp_rast.pdf
1.5M Dec  9 22:02 tmp_reg.pdf
Другие вопросы по тегам