解決Matplotlib繪制的圖表不能正確顯示中文


    解決這個問題有兩種方法,一種方法是修改配置文件,這種方法一勞永逸,以后不必擔心中文顯示的問題(重新安裝Matplotlib除外),另一種方法是通過代碼修改,比較局限,但步驟少點。
    先說一下前一種方法,也就是修改配置文件。(僅限於Ubuntu。)在我的系統中,這個文件的路徑為/usr/local/lib/python3.4/dist-packages/matplotlib/mpl-data/matplotlibrc,或者你也可以用sudo find / -name matplotlibrc自己搜索出來。
1. 打開這個文件,先找到font.family,去掉這行開頭的“#”
2. 再找到font.sans-serif,同樣去掉“#”,並且在“:”之后添加系統中存在的中文字體。這里說一下怎么找系統中的中文字體,輸入命令fc-list :lang=zh-cn,就可以看到系統中的中文字體了,我這里選用的字體是“FZHei-B01”(有這個字體,可能是我裝了WPS的緣故),大家對照這個形式,就知道其他中文字體的名字了。
3. 添加完字體名字,再找到axes.unicode_minus,去掉“#”,並把“True”改成“False”,這樣就可以正常顯示負號
    接下來說一下后面那種編碼解決的方法。首先你還是要找中文字體,不過這次你要找中文字體文件,也就是“.ttf”,在我這里路徑為“/usr/share/fonts”。找到路徑文件,接下來就是寫代碼:

from matplotlib.font_manager import FontProperties
font = FontProperties(fname="/usr/share/fonts/wps-office/FZWBK.TTF", size=15)
# 省略若干代碼
ax.set_ylabel('分數', fontproperties=font)

前面找到的中文字體文件路徑作為上面函數的參數,用於生成中文字體對象。


參考:
python matplotlib中文顯示問題
python中matplotlib繪圖中文顯示問題
ubuntu下matplotlib畫圖中文亂碼問題


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com