標籤:python 亂碼
matplotlib是Python著名的繪圖庫,預設並不支援中文顯示,因此在不經過修改的情況下,無法正確顯示中文。本文將介紹如何解決這一問題的方法。
網上的主流方法是修改matplotlibrc檔案,如下(但是沒有效果):
1,找到
#font.family:sans-serif
去掉注釋
2,找到
#font.sans-serif:Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica,Avant Garde, sans-serif
修改為
font.sans-serif:Microsoft YaHei ,Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid,Arial, Helvetica, Avant Garde, sans-serif
即去掉注釋,並在配置值中添加 MicrosoftYaHei ,
3,在windows下搜尋msyh.ttf,即微軟的雅黑字型
並將msyh.ttf copy到python按照目錄下的
D:\Python27\Lib\site-packages\matplotlib\mpl-data\fonts\ttf目錄
細節注釋:按照上述的步驟操作,在matplotlibrc中修改也是徒勞。
下面是另一種方法:(解決matplotlib映像中文顯示問題)
1、找到matplotlib安裝目錄,
比如D:\Python27\Lib\site-packages\matplotlib\mpl-data目錄下的matplotlibrc檔案,找到#font.sans-serif :…這一行,把後面的修改為’nothing’,這樣做是強制讓系統無法找到英文字型,而是用matplotlib預設字型Vera.ttf替換(不做這一步,我測試了也是可以的!)
#font.sans-serif : nothing |
2、同個檔案中找到#verbose.level : silent這行。把silent修改為debug,這樣做是為了看更詳細的輸出.(不做這一步,我測試了也是可以的!)
3、 找到字型目錄D:\Python27\Lib\site-packages\matplotlib\mpl-data\fonts\ttf下的Vera.ttf。這裡我們用中文楷體可以從C:\Windows\Fonts拷貝過來,直接張貼到前面的ttf目錄下,然後更名為Vera.ttf,相當於用中文的字型替代掉之前的英文字型,偷龍轉鳳!!
4. 程式中指定檔案編碼# -*-coding: utf-8 -*- ,並且確保要輸出的中文是unicode形式,檢查是否為unicode代碼:isinstance(s,unicode)。
上述操作,其實只要將Vera.ttf檔案替換掉即可,不用修改matplotlibrc檔案也是可行的。只是擔心以後會有什麼副作用。。。
參考網址:http://www.cnblogs.com/idealing/p/3611361.html