Этого нет в блокноте jupyter, поэтому это не дубликат этого вопроса, но мой код:
from gluoncv import model_zoo, data, utils
from matplotlib import pyplot as plt
...
plt.show()
Ошибка, которую я получаю:
/figure.py:445: UserWarning: Matplotlib is currently using ps, which is a non-GUI backend, so cannot show the figure.
% get_backend())
Я создал реплику на https://repl.it/@shamoons/WelloffHarmfulMineral
Если это имеет значение, я использую OS X. Что мне нужно сделать, чтобы изображение отображалось?






matplotlib.use('PS') и plt.show() являются взаимоисключающими. Вам нужно решить:
matplotlib.use('PS').PS? Это кажется маловероятным, потому что редко есть причина устанавливать серверную часть на что-то неинтерактивное, если только вы не работаете на сервере. В любом случае, решение: заменить plt.show() на plt.savefig("filname.ps").Я изменил код и удалил matplotlib.use('PS'). Я получаю ту же ошибку
Вероятно, потому что вы не перезапустили ядро после внесения этого изменения.
Я не веду блокнот. Это Python, работающий на моем Mac, так как мне перезапустить ядро?
Хорошо, как ты это делаешь? Можете ли вы создать минимальный воспроизводимый пример? Что такое gluoncv?
Я создал реплику в repl.it/@shamoons/WelloffHarmfulMineral, однако я работаю в Mac OS X.
Эта ссылка repl.it приводит к разным ошибкам для меня. Кроме того, на сервере repl.it вы действительно не сможете show() фигуру. Итак, вернемся к вашему локальному компьютеру, можете ли вы установить серверную часть перед импортом gluoncv, import matplotlib; matplotlib.use("TkAgg"); import gluoncv....?
@ImportanceOfBeingErnest, а что, если я хочу показать живой сюжет? я имею в виду, что я постоянно обновляю свой график, поэтому savefig - не очень хорошая идея, так как мне приходится много раз закрывать/открывать изображения. у вас есть какие-либо предложения ?
@Tiendung Вы не можете использовать бэкэнд PS для живых сюжетов.
Ты можешь использовать
matplotlib.use("TkAgg")
вместо
matplotlib.use("PS")
при разработке на MacOS.
Обратите внимание, что импорт должен быть до импорта plt, вот так:
import matplotlib
matplotlib.use('TkAgg')
from matplotlib import pyplot as plt
Бэкенд
PSпредназначен для создания файлов PostScript, а не для отображения графиков. Это предупреждениеmatplotlibсообщает вам, что ваш вызовplt.show()не сделает того, что вы думаете.