簡記matplotlib中文顯示方法

20100222更新:

matplotlib 0.99版

修改matplotlibrc文件:

font.family         : sans-serif         #打開該選項

font.sans-serif     : Microsoft YaHei , Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif     #添加“Microsoft YaHei”

 

注:在font.sans-serif中添加的字體名稱必須正確,可以在$HOME/.matplotlib/fontList.cache文件中,通過查找文件名找到對應的名稱,如上面的"Microsoft YaHei"的字體文件名稱爲“msyh.ttf",搜索一下就找到了。如果還不行,試着將字體文件copy到/usr/share/matplotlib/mpl-data/fonts/ttf目錄下,再試。

 

========================

以前的:

前段時間一直使用python的matplotlib繪圖,但是中文顯示一直都是方塊,當時雖然也從matplotlib的文檔中看到介紹說可以完美顯示Unicode,但試驗幾次沒有成功也就撂在一旁,反正中英文也可以將就。近日有仔細研究了一下matplotlib的範例,現在終於可以完美顯示中文了。在此簡單記錄一下方法,供後來人參考。

matplotlib的字體管理器似乎實現的還不是特別完美,我暫時無法通過修改默認配置文件的方式來修改,也沒辦法通過指定字體名稱來顯示,幸運的是,mpl可以在每次繪製字體時直接指定字體文件。

例如:

#指定字體文件,下面我就是直接使用的“微軟雅黑”字體:

myfont = matplotlib.font_manager.FontProperties(fname='/usr/share/fonts/truetype/msyh.ttf')

 

#之後,mpl和字體有關的函數,如text,title等都可以直接指定字體屬性,見下面紅字:

axes.text(0.99,0.97, text, horizontalalignment='right', verticalalignment='top',
              transform=axes.transAxes, fontproperties=myfont , color=color)

 

下面是用matplotlib繪製的上證指數的周線圖,漢字也完美的顯示了,期待以後可以通過直接修改默認配置文件的方式指定想要的字體:

 

上證指數週線圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章