背景
mac操作系統(tǒng),jupyter
問題
用matplotlib 畫圖中文顯示為方框
解決方法
1.下載SimHei字體
2.將下載好的字體添加到matplotlib的字體文件夾中
找到該文件夾路徑的方法:
運(yùn)行如下代碼刹缝, 先找到 matplotlib的路徑
import matplotlib
print(matplotlib.matplotlib_fname())
我的路徑為:
/Users/****/opt/anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc
在matplotlibrc同級(jí)目錄下有fonts/ttf碗暗,把下載好的SimHei字體拷貝到ttf文件夾下
3.修改matplotlibrc信息
打開剛才找到的matplotlibrc文件,修改以下3處
屏幕快照 2020-03-29 下午11.06.22.png
注:添加SimHei的時(shí)候注意與下載的字體名字保持一致
屏幕快照 2020-03-29 下午11.11.26.png
注:改為False是為了負(fù)號(hào)顯示不出錯(cuò)
4.刪除~/.matplotlib/下的所有緩存文件
在終端中運(yùn)行以下命令
rm -rf ~/.matplotlib/*.cache
5.刪除~/.matplotlib/下的fontList.json
在終端中運(yùn)行以下命令
rm -f ~/.matplotlib/fontList.json
6.重啟jupyter,并在代碼中添加如下代碼
plt.rcParams['font.sans-serif'] = ['SimHei']
然后繪圖即可
以下是一個(gè)例子
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
data_train.Survived.value_counts().plot(kind='bar')
plt.title(u"獲救情況 (1為獲救)")
plt.ylabel(u"人數(shù)")
plt.show()
結(jié)果如下:
屏幕快照 2020-03-29 下午11.22.44.png