我正在尝试使用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后端,因为有些人needmatplotlib
没有任何GUI后端。