我正在尝试使用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(在虚拟环境内),但没有找到它:

Collecting tkinter
  Could not find a version that satisfies the requirement tkinter (from versions: )
No matching distribution found for tkinter

我还应该提到,我使用虚拟环境在Pycharm社区版IDE上运行了所有这些内容,并且我的操作系统是Linux/Ubuntu 18.04。

I would like to know how I can solve this problem in order to be able to display the graph.

答案

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

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

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

sudo apt-get install python3-tk

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

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

  • 解决方案1效果很好,因为您会得到GUI后端…在这种情况下TkAgg
  • 但是,您还可以通过安装任何Matplolib GUI后端来解决问题Qt5Agg,,,,GTKAgg,,,,Qt4Agg, ETC
    • 例如pip install pyqt5还将解决问题

笔记:

  • 通常,当您安装matplotlib时,会出现此错误,并且您正在尝试在GUI窗口中显示绘图,并且没有用于GUI显示的Python模块。
  • 作者matplotlib使PYPI软件DEP不取决于任何GUI后端,因为有些人need matplotlib没有任何GUI后端。

来自: stackoverflow.com