"UserWarning: Matplotlib в настоящее время использует agg, который не является GUI, поэтому не может показать рисунок". при нанесении фигуры с пиплота на Пичарм
Я пытаюсь построить простой график, используя pyplot, например:
import matplotlib.pyplot as plt
plt.plot([1,2,3],[5,7,4])
plt.show()
но фигура не появляется и я получаю следующее сообщение:
UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.
В нескольких местах я видел, что нужно изменить конфигурацию matplotlib, используя следующее:
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
Я сделал это, но затем получил сообщение об ошибке, потому что он не может найти модуль:
ModuleNotFoundError: No module named 'tkinter'
Затем я попытался установить "tkinter" с помощью pip install tkinter
(внутри виртуальной среды), но он не нашел его:
Collecting tkinter
Could not find a version that satisfies the requirement tkinter (from versions: )
No matching distribution found for tkinter
Я должен также упомянуть, что я все это выполняю в IDE Pycharm Community Edition, используя виртуальную среду, и что моя операционная система - Linux/Ubuntu 18.04.
Я хотел бы знать, как я могу решить эту проблему, чтобы иметь возможность отображать график.
Ответы
Ответ 1
Я нашел решение моей проблемы (благодаря помощи ImportanceOfBeingErnest).
Все, что мне нужно было сделать, это установить tkinter через терминал Linux bash, используя следующую команду:
sudo apt-get install python3-tk
вместо того, чтобы устанавливать его с помощью pip или непосредственно в витальной среде в Pycharm.
Ответ 2
Попробуйте import tkinter
потому что pycharm уже установил для вас tkinter, я посмотрел Install tkinter for Python
Вы можете попробовать:
import tkinter
import matplotlib
matplotlib.use('TkAgg')
plt.plot([1,2,3],[5,7,4])
plt.show()
как способ установки tkinter
Я попробовал ваш путь, кажется, нет ошибок для запуска на моем компьютере, он успешно показывает цифру. возможно, потому что у pycharm есть tkinter как системный пакет, поэтому вам не нужно его устанавливать. Но если вы не можете найти tkinter внутри, вы можете перейти к Tkdocs, чтобы узнать, как установить tkinter, как упоминается, tkinter - основной пакет для python.
Ответ 3
В моем случае сообщение об ошибке означало, что я работал в безголовой консоли. Так что plt.show()
не мог работать. То, что сработало, было:
import matplotlib.pyplot as plt
plt.plot([1,2,3],[5,7,4])
plt.savefig("mygraph.png")
Я нашел ответ в хранилище github.