Matplotlib 无法画图 (using agg问题)

发布于 2021-12-11  377 次阅读


今天又一次用到matplotlib时,发现显示不出来图。错误如下:

错误提示

UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure

环境是

  • Pyhton 3.9.2
  • Pycharm

上网搜,各种解决办法。都没有效果。

比如

matplotlib.use('TKAgg')
#没用
pip install tk
pip install tkinter
pip install pyqt5
#都没用

最让我迷惑的是,我上个月还在用matplotlib完成一个项目。(那个项目用的venv是3.6版本)。当我把interpreter改成3.6版本后,就不会出现这个问题。

因为上面提到的三个我从来没用pip装过,所以排除了没有安装的原因。

想来想去,问题大概率在python本身上面,因为搜索到的结果很多提到tkinter

sudo apt-get install tcl-dev tk-dev python-tk python3-tk

这是对python本身(而不是interpreter)做的修改。那就在3.6版本里import它,然后ctrl点击定位文件。

import tkinter

果然,它在 Python3.9.2\Lib\tkinter__init__.py 下。对比3.9版本和3.6版本的Lib 文件夹,后者明显少了许多。这是我意识到问题所在:3.9.2版本安装不完全。我想到安装时确实有些方框没有勾上。

打开Python安装包,不用重新安装。选择Modify。正确答案就是安装时tcl/tk and IDLE 没有勾上。果断勾上。

我想大部分人造成这个问题出现的原因和我一样。

next->install,完美解决。