背景
mac操作系统,jupyter
问题
用matplotlib 画图中文显示为方框
解决方法
1.下载SimHei字体
2.将下载好的字体添加到matplotlib的字体文件夹中
找到该文件夹路径的方法:
运行如下代码, 先找到 matplotlib的路径
import matplotlib
print(matplotlib.matplotlib_fname())
我的路径为:
/Users/****/opt/anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc
在matplotlibrc同级目录下有fonts/ttf,把下载好的SimHei字体拷贝到ttf文件夹下
3.修改matplotlibrc信息
打开刚才找到的matplotlibrc文件,修改以下3处
注:添加SimHei的时候注意与下载的字体名字保持一致
注:改为False是为了负号显示不出错
4.删除~/.matplotlib/下的所有缓存文件
在终端中运行以下命令
rm -rf ~/.matplotlib/*.cache
5.删除~/.matplotlib/下的fontList.json
在终端中运行以下命令
rm -f ~/.matplotlib/fontList.json
6.重启jupyter,并在代码中添加如下代码
plt.rcParams['font.sans-serif'] = ['SimHei']
然后绘图即可
以下是一个例子
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"人数")
plt.show()
结果如下: