ubuntu 16.04 + python + matplotlib下畫圖顯示中文設置


 

一、需求

  因為在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)
dispFonts

  

  (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 #解決負號'-'顯示為方塊的問題
Former Codes

 

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)
Test Codes

 

  

 

    

四、補充——字體下載參考

  http://www.linuxdiyf.com/linux/21351.html 

  http://www.cnblogs.com/arkenstone/p/6411055.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM