问题:“用户警告:Matplotlib当前正在使用agg,它是非GUI后端,因此无法显示该图。” 在Pycharm上用pyplot绘制图时
我正在尝试使用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
我还应该提到,我正在使用虚拟环境在Pycharm Community Edition IDE上运行所有这些程序,并且我的操作系统是Linux / Ubuntu 18.04。
我想知道如何解决此问题才能显示图形。
回答 0
我找到了解决问题的方法(借助于ImportanceOfBeingErnest的帮助)。
我要做的就是tkinter
使用以下命令通过Linux bash终端安装:
sudo apt-get install python3-tk
而不是将其安装pip
在Pycharm的虚拟环境中或直接安装在虚拟环境中。
回答 1
就我而言,该错误消息表示我在无头控制台中工作。因此plt.show()
无法正常工作。起作用的是plt.savefig
:
import matplotlib.pyplot as plt
plt.plot([1,2,3], [5,7,4])
plt.savefig("mygraph.png")
我在github仓库上找到了答案。
回答 2
如果您使用Arch Linux(分布类似Manjaro
或Antegros
),只需键入:
sudo pacman -S tk
所有都将完美运行!
回答 3
尝试一下,import tkinter
因为pycharm已经为您安装了tkinter,所以我看了为Python安装tkinter
您可以尝试:
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的核心软件包。
回答 4
我在PyCharm中也遇到了这个问题。此问题是因为您的计算机中没有tkinter模块。
要安装,请遵循以下步骤(选择合适的操作系统)
对于ubuntu用户
sudo apt-get install python-tk
要么
sudo apt-get install python3-tk
对于Centos用户
sudo yum install python-tkinter
要么
sudo yum install python3-tkinter
对于Windows,请使用pip安装tk
安装tkinter后,重新启动Pycharm并运行您的代码,它将起作用
回答 5
安装简单
pip3 install PyQt5==5.9.2
这个对我有用。
回答 6
您可以使用fromagg
到Tkinter TKAgg
using命令将后端使用的matplotlib更改为
matplotlib.use('TKAgg',warn=False, force=True)
回答 7
Linux Mint 19.对我有帮助:
sudo apt install tk-dev
PS软件包安装后重新编译python解释器。
回答 8
以防万一这对任何人都有帮助。
Python版本:3.7.7平台:Ubuntu 18.04.4 LTS
这带有默认的python 3.6.9版本,但是我已经在上面安装了自己的3.7.7版本python(已从源代码安装了它)
即使当 help('module')
列表中显示了tkinter,。
以下步骤对我有用:
sudo apt-get install tk-dev.
重建python:1.导航到您的python文件夹并运行检查:
cd Python-3.7.7
sudo ./configure --enable-optimizations
- 使用make命令进行构建:
sudo make -j 8
—这是8个处理器的数量,请使用nproc
命令。 使用以下方式安装:
sudo make altinstall
不要使用sudo make install,它将覆盖默认的3.6.9版本,以后可能会很混乱。
- 立即检查tkinter
python3.7 -m tkinter
将弹出一个窗口框,您的Tkinter现在已准备就绪。
回答 9
在升级了很多软件包(Spyder
3到4,Keras
以及Tensorflow
很多依赖)之后,我今天遇到了同样的问题!我不知道发生了什么事。但是继续使用Spyder
3的(基于conda的)虚拟环境没有问题。尽管如上所示安装tkinter
或更改了后端,via matplotlib.use('TkAgg)
或者这篇有关如何更改后端的不错的帖子 可能很好地解决了问题,但我不认为这些是严格的解决方案。对我来说,卸载matplotlib
并重新安装它是不可思议的,问题已解决。
pip uninstall matplotlib
…然后,安装
pip install matplotlib
综上所述,这可能是一个程序包管理问题,顺便说一句,在可行的情况下,我会同时使用conda
和pip
。
回答 10
当我在Spyder上遇到此错误时,我从逐行运行代码变为突出显示绘图代码块并立即运行所有代码。瞧,图像出现了。
回答 11
我内联添加了%matplotlib, 并且我的情节出现在Jupyter Notebook中。
回答 12
@xicocaio的评论应突出显示。
从某种意义上说,tkinter是特定于python版本的,sudo apt-get install python3-tk
它将专门为您的默认python版本安装tkinter。假设您在各种虚拟环境中具有不同的python版本,则必须为该虚拟环境中使用的所需python版本安装tkinter。例如,sudo apt-get install python3.7-tk
。No module named ' tkinter'
即使不为全局python版本安装它,这样做仍然会导致错误。