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

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


当前回答

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

import ffn

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

matplotlip.get_backend()

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

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

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

其他回答

绘图前请执行以下命令

%matplotlib inline

答案已经给出了几次,但并不明显,一个需要安装图形,这是有效的。

pip3 install PyQt5

@xicocaio的评论应该突出显示。

tkinter is python version-specific in the sense that sudo apt-get install python3-tk will install tkinter exclusively for your default version of python. Suppose you have different python versions within various virtual environments, you will have to install tkinter for the desired python version used in that virtual environment. For example, sudo apt-get install python3.7-tk. Not doing this will still lead to No module named ' tkinter' errors, even after installing it for the global python version.

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

这适用于R网状结构。在这里找到的。

1: matplotlib。使用“tkaggs” 前 2: matplotlib$use('tkagg')

例如:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import style

import matplotlib
matplotlib.use( 'tkagg' )


style.use("ggplot")
from sklearn import svm

x = [1, 5, 1.5, 8, 1, 9]
y = [2, 8, 1.8, 8, 0.6, 11]

plt.scatter(x,y)
plt.show()