采用matplotlib作圖時(shí)默認(rèn)設(shè)置下是無(wú)法顯示中文的,凡是漢字都會(huì)顯示成小方塊。 實(shí)際上,matplotlib是支持unicode編碼的,不能正常顯示漢字主要是沒(méi)有找到合適的中文字體,在matplotlib的配置文件C:\Python34\Lib\site-packages\matplotlib\mpl-data\matplotlibrc中,可以看到字體的默認(rèn)設(shè)置如下: #font.family #font.sans-serif 可以看到,其中并沒(méi)有中文字體,所以我們只要手動(dòng)添加中文字體的名稱就可以了。不過(guò)添加的名稱并不是普通的名稱,python有個(gè)字體管理器,font_manager.py,它會(huì)生成一個(gè)文件:fontList.cache(我的是在這個(gè)路徑下:C:\Users\Administrator\.matplotlib);里面包含著True Type字體(.ttf文件)與Python中相應(yīng)字體的對(duì)應(yīng)名稱,黑體simhei.ttf (windows中的字體文件)對(duì)應(yīng)的名稱是: “SimHei’’;楷體simkai.ttf對(duì)應(yīng)的名稱為’KaiTi’。你想要讓漢字顯示成什么字體,在其中查找對(duì)應(yīng)的名稱就可以了。 有兩種方法添加“SimHei’’,’KaiTi_GB2312’等中文字體名稱: 1. 直接修改配置文件matplotlibrc font.sans-serif 2. 動(dòng)態(tài)設(shè)置(推薦方式) from pylab import * mpl.rcParams['font.sans-serif'] = ['SimHei'] 由于更改了字體導(dǎo)致顯示不出負(fù)號(hào),在配置文件中我們可以在axes相關(guān)設(shè)置里找到如下設(shè)置: #axes.unicode_minus : True 可見(jiàn)默認(rèn)情況下采用的是unicode的minus,看來(lái)我們選擇的字體對(duì)這點(diǎn)支持不夠,所以只要把它設(shè)置為False就可以了。 因此,最終需要在程序中加入如下代碼,就可以正常顯示漢字,并且不出現(xiàn)問(wèn)題了。 注意:每個(gè)要顯示的漢字串前要加u,即u"漢字串"。
|
|
來(lái)自: OneDayDayUp > 《Python》