失败方法
-
增加
plt.rcParams['font.sans-serif'] = ['SimHei'] # Or any other Chinese characters -
依然报错:
findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans.
有效方法
- 问题的原因是库中的
font文件夹中不包含相关字体
接下来是正片:
下载SimHei
-
放入目录
fonts/ttf下
获取目录的具体方法:终端中打开 python,执行下面语句:
>>> import matplotlib
>>> print(matplotlib.matplotlib_fname())
得到:/Users/robin/software/anaconda3/envs/tensorflow/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc
我们的目标目录即为:/Users/robin/software/anaconda3/envs/tensorflow/lib/python3.6/site-packages/matplotlib/mpl-data,使用访达访问找到ttf文件夹即可:

将下载的文件直接拖入即可。
删除缓存目录
删除以下命名产生的缓存目录:
>>> import matplotlib
>>> matplotlib.get_cachedir()
我这里是'/Users/robin/.matplotlib',退出后使用rm -rf /Users/robin/.matplotlib 删除即可
修改配置文件
使用 vim 编辑器或者直接打开文件到文本编辑器,找到三个地方进行修改:
修改前:


修改后:


重启
最后重启编译器即可成功显示汉字。保险起见,我是清除缓存+重启。
主要参考:Font family [‘sans-serif‘] not found.Falling back to DejaVu Sans.解决办法

本文详细介绍了如何在Matplotlib中解决找不到SimHei字体的问题,包括下载SimHei字体、定位并修改配置文件、清理缓存及重启步骤。

3855

被折叠的 条评论
为什么被折叠?



