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

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


当前回答

我在Ubuntu 20.04上使用WSL2安装了python3-tk

    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib
    matplotlib.use( 'tkagg')

然后我从Windows商店安装了GWSL,这似乎解决了WSL2渲染的问题

其他回答

我在Ubuntu 20.04上使用WSL2安装了python3-tk

    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib
    matplotlib.use( 'tkagg')

然后我从Windows商店安装了GWSL,这似乎解决了WSL2渲染的问题

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

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

在Mac OS上,我让它工作:

import matplotlib
matplotlib.use('MacOSX')

我在Windows 7和PyCharm Pro上也遇到过同样的问题。 它发生在我安装金融软件包“ffn”之后

import ffn

Matplotlib后端更改为“add”。 你可以检查当前后端:

matplotlip.get_backend()

您可以通过以下方式更改当前后端:

matplotlib.use(backend = "module://backend_interagg")

这在一个额外的或内部窗口中为我的PyCharm Professional解决了问题。

小心你的代码中的导入顺序,我花了一整天的时间通过这个答案,最终通过在其他任何东西之前导入bt,然后使用.use('TkAgg')语句解决了问题(由于某种原因,导入bt将matplotlib后端更改为'Agg')