Jupyter中用matplotlib 画图中文显示为方框的解决方法

背景

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处


Jupyter中用matplotlib 画图中文显示为方框的解决方法_第1张图片
屏幕快照 2020-03-29 下午11.06.22.png

注:添加SimHei的时候注意与下载的字体名字保持一致


屏幕快照 2020-03-29 下午11.11.26.png

注:改为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()

结果如下:


屏幕快照 2020-03-29 下午11.22.44.png

你可能感兴趣的:(Jupyter中用matplotlib 画图中文显示为方框的解决方法)