Matplotlib сохраняет PDF с данными вне набора

#python #pdf #matplotlib #plot

#python #PDF #matplotlib #график

Вопрос:

У меня проблема с Matplotlib. Обычно я создаю большие графики со многими точками данных, а затем, после масштабирования или установки ограничений, я сохраняю в pdf только определенное подмножество исходного графика. Проблема возникает, когда я открываю этот файл: matplotlib сохраняет все данные в PDF, делая невидимыми те, которые находятся за пределами диапазона. Это делает практически невозможным последующее открытие этих графиков или их импорт в latex.

Любая идея о том, как я мог бы решить эту проблему, действительно приветствуется.

Большое спасибо

Комментарии:

1. Определите диапазон, который вы хотите просмотреть, и отфильтруйте свои данные, чтобы удалить ненужные части. Как это делается, зависит от того, что вы рисуете.

2. iirc это то, что было исправлено на master.

Ответ №1:

Если у вас нет требования использовать рисунки в формате PDF, вы можете сохранить рисунки matplotlib как .png ; этот формат содержит только данные на экране, например, я попытался сохранить большой точечный график в формате PDF, его размер был 198M ; в формате png он вышел как 270K ; плюс у меня никогда не было проблем с использованием png внутри latex.

Комментарии:

1. Я бы хотел иметь pdf, я могу проще изменять неправильные метки, и они выглядят лучше в beamer. Спасибо за предложение.

Ответ №2:

Я не проверял, что это сработает, но, возможно, стоит растеризировать некоторых исполнителей:

 fig, ax = plt.subplots()
ax.imshow(..., rasterized=True)
fig.savefig('test.png', dpi=600)
  

который растрирует исполнителя при сохранении в векторные форматы. Если вы используете достаточно высокий dpi, это должно обеспечить вам приемлемое качество.