Сохранить очень длинное (или широкое) изображение в matplotlib - PullRequest
0 голосов
/ 30 января 2020

У меня есть numpy массив формы (4000000, 200, 3), где первое измерение относится к высоте изображения, второе - к ширине. Меня смущает, как сохранить это изображение в формате png (или в любом другом формате) с высоким разрешением, потому что, когда я устанавливаю dpi = 5000, я получаю ошибку mermory. Вот мой код

fig, ax = plt.subplots()
im = ax.imshow(final_image_train)
ax.axis('off')
plt.savefig('final.png', dpi = 5000, bbox_inches = 'tight')

Любые предложения приветствуются.

1 Ответ

0 голосов
/ 30 января 2020

Используете ли вы по умолчанию figsize? Этот параметр дает определенный объем пространства для элементов внутри фигуры, включая метки.

Затем, если вы знаете, какой размер пикселя необходим, например (1200, 600), вам нужно выбрать комбинацию Размер фигуры и точек на дюйм. Пример отношения может быть таким:

figsize=(12,6)  , dpi=100
figsize=( 8,4)  , dpi=150
figsize=( 6,3)  , dpi=200

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


Теперь эта часть ответа является лишь рекомендацией. Обязательны ли matplotlib и .png? Если нет, взгляните на библиотеку plotly , которая позволяет создавать интерактивные графики, которые действительно хороши, если вам нужно исследовать много данных (формат. html). У вас есть автономная версия библиотеки, если вам интересно. Также, здесь у вас есть примеры субплотов.

...