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