Python Matplotlib绘图:解决汉字显示乱码问题

失败方法

  • 增加 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.解决办法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值