linux系统下seaborn无法显示中文字体填坑记----未完待续

首先,我用fc-list :lang=zh查看了系统的中文字体,哦豁,发现了Noto Sans CJK,于是我写sns.set(font='Noto Sans CJK'),报错:

findfont: Font family ['Noto Sans CJK'] not found. Falling back to DejaVu Sans.

好吧,没办法了,看一下plt里面有啥字体吧

print(matplotlib.matplotlib_fname())

我的地址是/home/catherine/anaconda3/lib/python3.8/site-packages/matplotlib/mpl-data/matplotlibrc

也就是你安装的matplotlib的路径下的/mpl-data/matplotlibrc

注意这里文件打开全是注释,我用nano打开的,所以ctrl+W找了一下font.sans-serif,

根本没有中文字体,我反手就给关了

然后找到/mpl-data下的fonts,看了看现有的字体文件(.ttf文件),想着得自己从哪里搞一个过去...

我默默打开了Windows文件管理,C盘搜索simhei.ttf

然后默默把它拷到了/mpl-data下的fonts里,再次回到刚刚的那个文件去掉两行注释加入simhei

font.serif      : simhei, DejaVu Serif, Bitstrea ....
font.sans-serif : simhei, DejaVu Sans, Bitstream Vera Sans, ...

去看一下字体列表

cd ~/.cache/matplotlib

nano一下fontlist-v310.json文件,加入如下代码

    {
      "fname": "fonts/ttf/simhei.ttf",
      "name": "simhei",
      "style": "normal",
      "variant": "normal",
      "weight": 400,
      "stretch": "normal",
      "size": "scalable",
      "__class__": "FontEntry"
    },

感觉自己离成功进了一步,接下来用

sns.set_style("darkgrid",{"font.sans-serif":['simhei','Droid Sans Fallback']})

好的,报错没了,中文字体有了,日期和数字乱码了,问题好像更复杂了呢,,,真开心。

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值