我试图用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'

然后,我尝试使用pip install tkinter(在虚拟环境中)安装“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。

我想知道我如何解决这个问题,以便能够显示图形。


当前回答

另一个选择是安装Anaconda。这是一个有用的软件,你可以创建许多环境,并且已经安装了许多用于数据科学和机器学习的库。

——编辑

这里有一些步骤可以帮助我解决你同样的问题:

第一步:在官方页面Anaconda下载。exe,使用个人版,因为它是免费的Anaconda个人版 步骤2:一旦你安装了程序,打开到env部分

在本节中,您可以根据自己的喜好创建多个env,例如,我有两个env,一个用于我的主基础(根),一个用于python的最后一个版本。

步骤3:在本节中创建py env, Anaconda将自动安装开发人员使用的主要库,降低代码出错的风险。 额外的考虑:正如你在下面的快照中看到的,你可以很容易地看到你在conda中安装了哪些库。我得到了你同样的错误,因为我错过了3个libs中的一个

希望是有用的和清楚的理解! 自保”

其他回答

Ubuntu 20.04命令行设置。我安装了以下程序,以使Matplotlib停止抛出错误UserWarning: Matplotlib目前正在使用agg,这是非gui后端,因此无法显示图形。

我通过以下步骤安装python-tk:

apt-get update

apt-get install python3.8-tk

绘图前请执行以下命令

%matplotlib inline

在使用Pycharm专业版2021.3时,这些答案对我都不起作用

常规的matplotlib图表在科学观点上确实有效,但它不允许我向图表中添加图像。

对我来说有用的是在我尝试绘制任何东西之前添加这条线:

plt switch_backend (TkAgg’)。

尝试导入tkinter,因为pycharm已经为您安装了tkinter,我查看了为Python安装tkinter

你可以试试:

import tkinter
import matplotlib
import matplotlib.pyplot as plt
matplotlib.use('TkAgg')
plt.plot([1,2,3],[5,7,4])
plt.show()

作为一种tkinter安装方式

我已经试过你的方法了,在我的电脑上运行似乎没有错误,它成功地显示了这个图形。可能是因为pycharm有tkinter作为系统包,所以你不需要安装它。但是如果你在里面找不到tkinter,你可以去Tkdocs看看tkinter的安装方法,正如它提到的,tkinter是python的核心包。

解决方案1:安装GUI后端tk

我找到了解决问题的方法(感谢ImportanceOfBeingErnest的帮助)。

我所要做的就是通过Linux bash终端使用以下命令安装tkinter:

sudo apt-get install python3-tk

而不是用pip或直接在Pycharm的虚拟环境中安装。

解决方案2:安装任何matplotlib支持的GUI后端

解决方案1工作得很好,因为你得到了一个GUI后端…在这种情况下是TkAgg 但是你也可以通过安装任何matplolib GUI后端来解决这个问题,比如Qt5Agg, GTKAgg, Qt4Agg等 例如,PIP安装pyqt5也将解决这个问题

注意:

通常,当你安装matplotlib并且你试图在GUI窗口中显示一个图形,而你没有用于GUI显示的python模块时,会出现这个错误。 matplotlib的作者使pypi软件deps不依赖于任何GUI后端,因为有些人需要matplotlib而不需要任何GUI后端。