plt.savefig () в Python вылетает с форматом .jpg даже после установки подушки - PullRequest
2 голосов
/ 05 мая 2020

Я пытаюсь сохранить фигуру с plt.savefig() is python в формате jpg или jpeg , но у меня все еще возникает эта ошибка:

File "/home/user/.local/lib/python3.7/site-packages/matplotlib/backends/backend_gtk3.py", line 468, in set_cursor
    self.canvas.get_property("window").set_cursor(cursord[cursor])

AttributeError: 'NoneType' object has no attribute 'set_cursor'

Подушка установлена и это предполагаемые форматы изображений, поддерживаемые matplotlib 3.2.1 на моем компьютере: (поддерживаемые форматы: eps, jpeg, jpg, pdf, pgf, png, ps, raw, rgba, svg, svgz, tif, tiff)

Код корректно работает с другими форматами, такими как pdf или png. Это мой код (очень простой):

import matplotlib.pyplot as plt
plt.plot([0, 1, 2, 3, 4], [0, 3, 5, 9, 11])
plt.xlabel('Months')
plt.ylabel('Books Read')
plt.savefig('/home/azza/Desktop/book.jpg')

1 Ответ

1 голос
/ 05 мая 2020

Если вы не собираетесь использовать plt.show(), просто добавьте следующее:

import matplotlib
matplotlib.use('Agg')

book.jpg:

plot

РЕДАКТИРОВАТЬ:

Глядя на документацию, на которую есть ссылка в моем комментарии ниже

, вам следует избегать явного вызова use () без крайней необходимости.

Вместо этого вы можете создать файл matplotlibrc в том же каталоге, что и ваш скрипт, и изменить таким образом серверную часть, добавив backend : Agg или backend : TkAgg в этот файл.

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