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

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


当前回答

在我的例子中,错误消息暗示我正在无头控制台中工作。因此,plt.show()不能工作。有效的方法是调用plt.savefig:

import matplotlib.pyplot as plt

plt.plot([1, 2, 3], [5, 7, 4])
plt.savefig("mygraph.png")

我在github上找到了答案。

其他回答

对于Windows 10,如果使用pip install tk不适合你,请尝试:

下载并运行官方的python安装程序。即使你 已经下载好了,再运行一次。 当(重新)安装python时,确保您选择了“高级”选项,并且 将“tcl/tk and IDLE”复选框设置为true。 如果你已经安装了python,选择“修改”选项,然后 确保选中了复选框。

修复方法的来源: https://stackoverflow.com/a/59970646/2506354

尝试导入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的核心包。

在Mac OS上,我让它工作:

import matplotlib
matplotlib.use('MacOSX')

可以在后端使用from agg to Tkinter TKAgg using命令更改matplotlib

matplotlib.use('TKAgg',warn=False, force=True)

当我在Spyder上遇到这个错误时,我从一行一行地运行我的代码,改为突出显示我的绘图代码块并一次性运行。瞧,图像出现了。