качество изображения на выходе plt.savefig - PullRequest
0 голосов
/ 13 сентября 2018

Я пытаюсь сохранить график в файл, используя plt.savefig, однако я недоволен качеством изображения на выходе.Изменение параметра dpi не помогает.

plt.savefig('filename.png', dpi=1200, format='png', bbox_inches='tight')

Я пытался сохранить в 'svg' и 'eps' - без разницы.Интересно, проблема в чем-то другом, например, в версии какой-то библиотеки или ОС или в чем-то подобном.Также похоже, что проблема не в разрешении, а в способе рисования линий и символов - слишком жирным.

plt.show () показывает значительно лучшую картинку, и я могу сохранить ее вpng с удовлетворительным качеством - и на удивление размер файла примерно в 8 раз меньше (из-за сжатия, я полагаю, это нормально.)

Часть изображения, сохраненная с помощью savefig () enter image description here

Та же часть изображения, сохраненная из plot.show () enter image description here

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Figsize вариант сделал свое дело для меня.

Идея состоит в том, что параметры по умолчанию для сохранения в файл и для отображения диаграммы различны для разных устройств. Вот почему представление было другим в моем случае. Можно настроить параметры вручную (как предлагает Пиотрек), но для меня было достаточно просто увеличить размер фигуры - этот параметр используется совместно и позволяет python автоматически настраивать визуализацию.

Более подробная информация на странице Упоминается Пиотрек, на который отвечают Дуг и Кармель.

У меня есть несколько подзаговоров, поэтому я использовал их так:

fig, ax = plt.subplots(nrows=4, ncols=1, figsize=(20, 10))

Для одного случая case команда выглядит так:

plt.figure(figsize=(20,10))

P.S. Параметры figsize указаны в дюймах, а не в пикселях.

0 голосов
/ 13 сентября 2018

Посмотрите здесь: Стили и Футурил

Короче говоря, вы можете поэкспериментировать со следующими параметрами для редактирования линии, отметок и т. Д.

plt.rcParams['font.family'] = 'serif'
plt.rcParams['font.serif'] = 'Ubuntu'
plt.rcParams['font.monospace'] = 'Ubuntu Mono'
plt.rcParams['font.size'] = 10
plt.rcParams['axes.labelsize'] = 10
plt.rcParams['axes.labelweight'] = 'bold'
plt.rcParams['axes.titlesize'] = 10
plt.rcParams['xtick.labelsize'] = 8
plt.rcParams['ytick.labelsize'] = 8
plt.rcParams['legend.fontsize'] = 10
plt.rcParams['figure.titlesize'] = 12

Также посмотрите на эту тему:

matplotlib savefig () графики, отличные от show ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...