问题描述:
今天在学习《Python编程:从入门到实践》中,学习十五章 使用 matplotlib进行各种图形绘制的时候出现了问题耗费大量时间,只是得出一个勉强的解决方案。
在VMware workstation 上 RHEL8 上安装完matplotlib之后用网站上的如下代码进行测试:
import matplotlib.pyplot as plt
import numpy as np
xpoints = np.array([1, 2, 6, 8])
ypoints = np.array([3, 8, 1, 10])
plt.plot(xpoints, ypoints)
plt.show()
在输入完代码之后,报错
UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.
用户警告:Matplotlib当前正在使用agg,这是一个非GUI后端,因此无法显示该图。
解决方法:
网上方法是使用
sudo apt-get install python3-tk
不过 RHEL8 dnf没有这个东西 而且装上
dnf install python3.5-tk
和
dnf install python3.5-tk
也依旧没用
最后只能修改代码,没有办法可能是 VM 安装虚拟机的缺陷吧。这个问题只能是修改代码绕过。
既然,没有办法在交互界面显示出来那么就直接把结果打印成mygraph.png图片吧 ,然后直接在Linux查看图片
修改代码:
--snip--
plt.plot(xpoints, ypoints)
#plt.show()
plt.savefig("mygraph.png")
linux查询图片
xdg-open mygraph.png
勉强能用吧