最近在服務(wù)器上運(yùn)行matplotlib相關(guān)的腳本時(shí)遇到了"Invalid DISPLAY variable"報(bào)錯(cuò),從報(bào)錯(cuò)中就可以知道這是因?yàn)闆](méi)有顯示設(shè)備導(dǎo)致的報(bào)錯(cuò)。
解決方案:
方案一: ~/.config/matplotlib/matplotlibr
,在里面添加backend : Agg
這個(gè)方案不一定有用,如果失效考慮下面兩種
方案二: 更換后端
可以先設(shè)置后端渤弛,然后導(dǎo)入pyplot
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
或者先導(dǎo)入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') #先創(chuàng)建一個(gè)pdf文件
plt.figure()
...
...
pdf.savefig() #將圖片保存在pdf文件中
plt.close()
pdf.close() #這句必須有,否則程序結(jié)束pdf文件無(wú)法打開