小编典典

“用户警告:Matplotlib 当前使用的是 agg,这是一个非 GUI 后端,因此无法显示该图。” 在 Pycharm 上用 pyplot 绘制图形时

all

我正在尝试使用 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 社区版 IDE 上运行所有这些,并且我的操作系统是 Linux/Ubuntu 18.04。

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


阅读 223

收藏
2022-04-12

共1个答案

小编典典

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

我找到了解决问题的方法。

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

sudo apt-get install python3-tk

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

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

  • 解决方案 1 工作正常,因为你得到了一个 GUI 后端......在这种情况下TkAgg
  • 但是,您也可以通过安装任何 matplolib GUI 后端(如Qt5AggGTKAggQt4Agg等 )来解决此问题
    • 例如pip install pyqt5也会解决这个问题

笔记:

  • 通常当您 pip install matplotlib 并且您尝试在 GUI 窗口中显示绘图并且您没有用于 GUI 显示的 python 模块时会出现此错误。
  • 作者matplotlib使 pypi 软件部门不依赖任何 GUI 后端,因为有些人 需要 matplotlib没有任何 GUI 后端。
2022-04-12