解決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」。找到路徑文件,接下來就是寫代碼:html

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

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


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