在无gui服务器上使用matplotlib会报错:
qt.qpa.screen: QXcbConnection: Could not connect to display localhost:10.0
Could not connect to any X display.
需要将matplotlib的backend修改成agg,即在画图前加入两行
import matplotlib
matplotlib.use('Agg')#设置成无gui模式
之后使用matplotlib.pyplot画图不会报错。
但由于使用的是agg模式,如果用plt.show()让其显示图片,会报错:
UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.
但可以用plt.savefig()保存图片。
一个示例如下:
import matplotlib
matplotlib.use('Agg')#设置成无gui模式
import matplotlib.pyplot as plt
plt.plot([1,2,3,4],[1,2,4,3])
plt.savefig('./save.png')#可以保存图片
plt.show()#不能显示图片