一、需求
因為在python畫圖顯示的時候,經常需要展示一些中文,但是ubuntu系統下按照默認安裝方式安裝的時候,一般是不能顯示中文的,當強行給legend、xlabel、ylabel賦予中文的時候,會顯示為方塊
二、參考
http://blog.csdn.net/onepiece_dn/article/details/46239581
三、配置方法
(1) 顯示本機的同時可用的中文和西文字體
def dispFonts(): #顯示可用的中文字體,同時支持英文的 from matplotlib.font_manager import FontManager import subprocess fm = FontManager() mat_fonts = set(f.name for f in fm.ttflist) output = subprocess.check_output( 'fc-list :lang=zh -f "%{family}\n"', shell=True) output = output.decode('utf-8') # print '*' * 10, '系統可用的中文字體', '*' * 10 # print output zh_fonts = set(f.split(',', 1)[0] for f in output.split('\n')) available = mat_fonts & zh_fonts print '*' * 10 + u'可用的中文字體'+'*' * 10 for f in available: print(f)

(2) 找到對應的字體的位置
在終端輸入 fc-list :lang=zh (:前有一個空格)

(3) 根據想設置的字體,找到上面的完整文件名
在畫圖的python 程序中添加
from matplotlib import rcParams from matplotlib.font_manager import FontProperties import matplotlib.pyplot as plt myfont = FontProperties(fname='/usr/share/fonts/wps-office/FZWBK.TTF',size=20) rcParams['axes.unicode_minus']=False #解決負號'-'顯示為方塊的問題
from matplotlib import rcParams from matplotlib.font_manager import FontProperties import matplotlib.pyplot as plt myfont = FontProperties(fname='/usr/share/fonts/wps-office/FZWBK.TTF',size=20) rcParams['axes.unicode_minus']=False #解決負號'-'顯示為方塊的問題 fig = plt.figure() ax1 = fig.add_subplot(1, 1, 1) ax1.plot([1, 2, 3],[1,2,3],'bv-') ax1.set_xlabel(u'x軸標簽', fontproperties=myfont) ax1.set_ylabel(u'y軸標簽', fontproperties=myfont) plt.show() ax1.legend([u'圖例標簽'], loc='best',prop=myfont)

四、補充——字體下載參考
http://www.linuxdiyf.com/linux/21351.html
http://www.cnblogs.com/arkenstone/p/6411055.html
