Mac错误处理:findfont: Font family ‘SimHei’ not found.

目的:设置中文字体 解决:安装Microsoft字体 效果:不需要plt.rcParams[‘font.sans-serif’] =
[‘SimHei’]就可以自动显示中文,至此中文显示的问题已经解决。

1. 查看matplotlib字体路径

import matplotlib    
print(matplotlib.matplotlib_fname())  #matplotlib字体路径【安装】
print(matplotlib.get_cachedir())  #清理matplotlib缓冲目录
  • /Users/wt/miniconda3/envs/llm/lib/python3.11/site-packages/matplotlib/mpl-data/matplotlibrc
  • /Users/wt/.matplotlib

2.下载SimHei.ttf字体

wget https://zihao-openmmlab.obs.cn-east-3.myhuaweicloud.com/20220716-mmclassification/dataset/SimHei.ttf

3. 将下载好的SimHei.ttf字体移动到第一步查询到的字体目录./fonts/ttf/下,清空缓存

# 1.下载好的SimHei.ttf字体并移动到第一步查询到的字体目录./fonts/ttf/下 
cp SimHei.ttf /Users/wt/miniconda3/envs/llm/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/SimHei.ttf

# 2.清理matplotlib缓冲目录【第一步查出的缓存目录】  
rm -rf /Users/wt/.matplotlib

4.修改原始文件【第一步查出的字体路径】

 vi /Users/wt/miniconda3/envs/llm/lib/python3.11/site-packages/matplotlib/mpl-data/matplotlibrc

通过:/内容 查找指定内容
如:/font.family, :/font.sans-serif, axes.unicode_minus.
提示:按n键,可以继续查找下一个

#去掉前面的#
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
#去掉前面的#,把True改为False
axes.unicode_minus: False  # use Unicode for the minus symbol rather than hyphen.  See

不需要plt.rcParams[‘font.sans-serif’] = [‘SimHei’]就可以自动显示中文,至此中文显示的问题已经解决。

5.测试绘图代码

import matplotlib.pyplot as plt
x = list(range(5))
y = list(range(1,10,2))
plt.plot(x,y)
plt.xlabel('x轴数据')
plt.ylabel('y轴数据')
plt.show()

参考:
https://blog.csdn.net/u012744245/article/details/119735461【强烈推荐】

Linux解决

cd /usr/share/fonts
# copy microsoft fonts to /usr/share/fonts
mkfontscale && mkfontdir && fc-cache -fv
# validation
fc-list : family | grep Sim
# remove matplot font cache
rm -rf ~/.cache/matplotlib

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部