最近在服务器上运行matplotlib相关的脚本时遇到了"Invalid DISPLAY variable"报错,从报错中就可以知道这是因为没有显示设备导致的报错。
解决方案:
方案一: ~/.config/matplotlib/matplotlibr
,在里面添加backend : Agg
这个方案不一定有用,如果失效考虑下面两种
方案二: 更换后端
可以先设置后端,然后导入pyplot
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
或者先导入pyplot,然后切换后端
import matplotlib.pyplot as plt
plt.switch_backend('Agg')
之后可以以Pdf形式或者其他格式保存到硬盘上。
from matplotlib.backends.backend_pdf import PdfPages
import matplotlib.pyplot as plt
plt.switch_backend('Agg')
pdf = PdfPages('cut_figure.pdf') #先创建一个pdf文件
plt.figure()
...
...
pdf.savefig() #将图片保存在pdf文件中
plt.close()
pdf.close() #这句必须有,否则程序结束pdf文件无法打开