Mac上的中文乱码问题

文章讲述了在macOS系统中,使用PyCharm和matplotlib库画图时遇到SimHei字体缺失导致中文乱码的错误,提供了两种解决方案。法一为直接修改matplotlib支持的字体;法二涉及下载Mac版本的SimHei字体,安装后更新matplotlib配置文件。按照文章步骤操作后,可以成功解决中文显示问题。
摘要由CSDN通过智能技术生成

前言

        当在pycharm中使用matplotlib.pyplot画图时,出现以下报错“findfont: Generic family 'sans-serif' not found because none of the following families were found: SimHei”,其原因是在macOs系统中缺少“SimHei”这种字体。若使用其他软件工具出现类似问题,也可加以参考。

解决办法

        网上比较多的是法二这种方法(即自己下载导入字体册),这种方法可以从根本上解决系统缺少某种字体的问题。但本人一开始通过这种方法并没有什么效果,后找到了法一这种临时方法,如果你只是想让图片能够显示出中文采用这种方法足以。后续对法二进行进一步尝试,终于解决了问题。

一、法一

1、查看matplotlib支持的字体

        中文乱码报错的原因就是matplotlib暂不支持该种字体,可在python控制台中通过以下代码查看目前所支持的字体,直接利用其中已有的字体即可完成中文显示。

import matplotlib
from matplotlib import font_manager

font_list=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])
for i in font_list:
    print(i)

部分结果如下:

2、修改所使用的字体

        将红框当中的第二句修改为第一句,即采用上一步圈出的“Heiti TC”字体,再运行即可。

二、法二

1、下载字体(该步需要特别注意!!!)

        我一开始是在官网上搜索需要下载的字体Download SimHei Font - Free Font Download,但其实下载的字体Mac无法使用,故Mac用户需要特别注意,要下载Mac版本的字体!!!字体资源后续有空会放在评论区里。

2、安装字体(该步切勿遗漏!!!)

        下载好字体后一定不要忘记点击.tff文件对字体进行安装,网上很多教程都没提到这步直接就移文件了。

先展示一下我一开始使用官网上下载的字体弹出的界面:

打开正确字体版本文件后的安装界面:

点击安装即可,安装完成后可在Mac自带的字体册中“我的字体”一栏看到我们添加的字体。

3、放入字体

1)获取字体路径

# 在python控制台中输入以下代码即可查看字体路径
import matplotlib
matplotlib.matplotlib_fname()

返回结果为:'/Users/zzx/anaconda3/envs/pytorch/lib/python3.8/site-packages/matplotlib/mpl-data/matplotlibrc'

2)将之前下载好的.tff字体放入以下路径中

/Users/zzx/anaconda3/envs/pytorch/lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf

4、删除字体缓存

1)获取字体缓存路径

# 在python控制台中输入以下代码
import matplotlib

matplotlib.get_cachedir()

返回结果为:'/Users/zzx/.matplotlib'

2)删除该路径中的缓存

rm -rf /Users/zzx/.matplotlib

5、修改matplotlibrc文件

1)打开文件

2)修改文件

找到FONT这一栏部分 

对红框部分进行修改

# 去掉前面的#号
font.family:  sans-serif
# 去掉前面的#号,并在:号后面加上SimHei
font.sans-serif: SimHei, DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

再找到AXES一栏 

对红框部分进行修改

# 去掉前面的#号,并将True改为False
axes.unicode_minus: False

最后重新运行应该就可以了,希望能够有所帮助。 

附录:

SimHei MAC字体资源链接:

链接: https://pan.baidu.com/s/1D7aEsa3fZLjVuDM_o1A2iw?pwd=k2wg 提取码: k2wg

  • 14
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值