問題描述:通過遠(yuǎn)程訪問服務(wù)器的方式運(yùn)行=代碼,但是代碼有用到matplotlib,使用matplotlib無法在終端上顯示繪制好的圖形,結(jié)果代碼報(bào)錯(cuò)。
一.警告信息

兩種解決方法:
1、python文件中:
在 from matplotlib import pylot 之前,添加代碼:
如下:
import matplotlib as mpl
mpl.use('Agg')
from matplotlib import pylot
2、在配置文件中:
Linux中,創(chuàng)建文件 ~/.config/matplotlib/matplotlibrc,
(其中,~/.config/matplotlib/是配置文件matplotlibrc的路徑)
添加如下一行:
backend : Agg
二、生成圖片
支持的格式(注意不支持jpg格式):
eps, pdf, pgf, png, ps, raw, rgba, svg, svgz
在plt.draw() 或者 plt.show() 之后添加生成圖片的代碼:
plt.show()
plt.savefig('/home/moxiao/code/python/classification_pr.png')
三、在GUI里打開代碼生成的圖片即可
四、完整示例
picture.py代碼:
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
plt.figure(1) # 創(chuàng)建圖表1
plt.figure(2) # 創(chuàng)建圖表2
ax1 = plt.subplot(211) # 在圖表2中創(chuàng)建子圖1
ax2 = plt.subplot(212) # 在圖表2中創(chuàng)建子圖2
x = np.linspace(0, 3, 100)
for i in range(5):
? ? plt.figure(1)? # 選擇圖表1
? ? plt.plot(x, np.exp(i*x/3))
? ? plt.sca(ax1)? # 選擇圖表2的子圖1
? ? plt.plot(x, np.sin(i*x))
? ? plt.sca(ax2)? # 選擇圖表2的子圖2
? ? plt.plot(x, np.cos(i*x))
plt.show()
plt.savefig('table.png')
運(yùn)行結(jié)果: 在本地生成 table.png, 在GUI中打開圖片: