在本地的pycharm可以正常使用matplotlib绘图,但在ssh远程绘图时会报错:RuntimeError: Invalid DISPLAY variable
错误原因:
matplotlib的默认backend是TkAgg,而
FltkAgg, GTK, GTKAgg, GTKCairo, TkAgg , Wx or WxAgg
这几个backend都要求有GUI图形界面的,所以在ssh操作的时候会报错
解决办法: 在导入matplotlib时设置所用的backend为不需要用GUI的backend,如:agg,Cairo、PS、PDF和SVG等
import matplotlib.pyplot as plt
plt.switch_backend(“Agg”)
但是有一个注意点:
设置了plt.switch_backend(“Agg”) 后会导致plt.show()方法是不会直接显示图的。需要将图保存到本地,plt.savefig("/root/python/test.png") ,再在本地查看图片