本博客介绍的是如何在使用 matplotlib 绘图的时候,正常显示中文。
读者可能遇到过这样的问题,使用matplotlib 绘制图像的时候,英文可以正常显示,但是中文显示不正常,一堆方块。问题原因在于默认没有中文字体库,所以解决的办法是下载中文字体,然后修改配置文件。具体方法下面将可以看到。
下载字体文件
本人使用的是 SimHei 字体,ttf 文件下载地址如下:SimHei字体下载
安装字体文件
进入到下载目录,移动或者复制字体文件到 /usr/local/share/fonts
sudo cp simhei.ttf /usr/local/share/fonts
修改配置文件
注意,这里修改的是matplotlib 的配置文件,运行下面的代码,找到配置文件所在的地址:
在 Vim 的命令模式下,输入 /font.family ,回车,按 n 查找下一个,找到如图所示的行,按a 进入编辑模式,取消该行的注释(将前面的# 去掉即可)将该行修改为如图所示:
按 ESC 回到命令模式,输入 /font.serif ,回车,找到如下的行,然后将它的注释取消。最终的效果如图:
除此之外,还应该再改一个参数,不然坐标轴上的负号将无法正常显示:
按照同样的办法将axes.unicode_minus 修改为 False(默认是True)如图所示:
清空缓存:
rm -rf ~/.cache/matplotlib/fontList.json
测试一下:
打开一个 notebook:
搞定,顺利解决!