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

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
  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值