0


Mac上的中文乱码问题

前言

    当在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

标签: macos python matplotlib

本文转载自: https://blog.csdn.net/m0_46297213/article/details/130651553
版权归原作者 zzxinn 所有, 如有侵权,请联系我们删除。

“Mac上的中文乱码问题”的评论:

还没有评论