歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

解決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”。找到路徑文件,接下來就是寫代碼:
[code]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畫圖中文亂碼問題
Copyright © Linux教程網 All Rights Reserved