2021-04-09

WIndows系统findfont: Font family [‘sans-serif‘] not found解决方法

某些python程序运行matplotlib模块绘图会出现 findfont: Font family [‘sans-serif‘] not found 的报错,原因是matplotlib模块缺乏某些字体。如果知道缺乏什么字体,可以安装对应的字体库即可。下面以安装 【noto 思源黑体】字体为例讲解字体安装过程。

第一步:下载字体 。

打开网页 https://1603.ieph.net:5001/sharing/eiUmHNVE9 ,下载NotoSansCJKSCv2.001.zip字体。

第二步:安装字体。

由于我们是用python中matplotlib模块绘图,而微软雅黑字体在windows 10 系统中与matplotlib 不兼容。所以需要将字体安装到两个地方,一个是系统中,一个是matplotlib模块的字体库中。

安装至系统:解压缩 NotoSansCJKSCv2.001.zip文件,安装NotoSansCJKsc-Bold.otf 字体(其它字体安装方法类似),双击文件打开即可看见安装选项,安装即可。

 

 

安装完成后可以通过系统字体查询关键字:noto,可以看到已经安装成功。

 

 

点击相应字体可以看见该字体的安装路径C:\Users\HBHH\AppData\Local\Microsoft\Windows\Fonts

 

 

 

安装至matplotlib模块的字体库:将字体文件NotoSansCJKsc-Bold.otf复制到matplotlib字体库文件夹中

 

 

第三步:设置matplotlib配置文件

为了使matplotlib模块中该字体库生效,需要 删除 ~/.cache/matplotlib的缓冲目录。具体删除方法如下,windows系统下打开用户文件目录,删除 .matplotlib文件夹

 

然后修改H:\software\Anaconda3\Lib\site-packages\matplotlib\mpl-data中的 matplotlibrc文件

 

 

用notepad++打开 matplotlibrc 文件,修改一共三个地方:

分别是:

font.family : sans-serif

font.sans-serif : Noto Sans SC,Noto Sans CJK SC,SimHei,DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

axes.unicode_minus : False ## use unicode for the minus symbol

修改一:将font.family前面的 # 去掉。

 

修改二:在font.sans-serif列表中添加字库。

 

修改三:将axes.unicode_minus 中的 True 改为 False

 

修改完这三处后保存文件。

然后重启python内核就可以了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值