永久解决matplotlib, shap画图中文注释乱码,负号不显示问题

背景

shap画图中文乱码,matplotlib绘图中文字段无法正常显示

查看字体是否存在

到 待设定环境的 anaconda 的 matplotlib 中查看是否有 simhei.ttf 字体:

cd ~/anaconda3/lib/python3.5/site-packages/matplotlib/mpl-data/fonts/ttf
ls -al | grep simhei

下载字体并上传到指定位置

在windows中使用全局搜索,搜索simhei.ttf
在这里插入图片描述
登陆需要设定的环境,上传字体到linux 的 matplotlib 的 fonts/ttf 文件夹。( linux上传文件有点慢,可先使用jupyter拖拽上传后,移动文件到目标路径)

修改配置文件

1、拷贝文件到对应目录
拷贝 ~/anaconda3/lib/python3.5/site-packages/matplotlib/mpl-data/matplotlibrc 文件,将到.cache/matplotlib 目录下

2、修改拷贝到.cache/matplotlib目录下的matplotlibrc 文件
取消注释,改动如下:

font.family         : sans-serif
font.sans-serif     : simhei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
axes.unicode_minus  : False    # 修改为False,作用是解决负号的乱码问题

删除缓存

(linux) 删除~/.cache/matplotlib/目录下的 fonts cache list

画图设定

import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['simhei']
mpl.rcParams['font.serif'] = ['simhei']
plt.rcParams['axes.unicode_minus']=False # 默认是使用Unicode负号,设置正常显示字符,如正常显示负号

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

参考文章:
https://developer.aliyun.com/article/400452#::text=Linux%E3%80%81Mac%20osx%20%E7%B3%BB%E7%BB%9F%E4%B8%AD%EF%BC%8C%E5%87%BA%E7%8E%B0%20matplotlib%20%E6%88%96%20seaborn%20%E7%BB%98%E5%9B%BE%E4%B8%AD%E6%9C%89%E4%B8%AD%E6%96%87%E4%B9%B1%E7%A0%81%E7%9A%84%E6%83%85%E5%BD%A2%EF%BC%8C%E5%8F%AF%E4%BB%A5%E8%80%83%E8%99%91%E4%BD%BF%E7%94%A8%E4%BB%A5%E4%B8%8B%E6%96%B9%E5%BC%8F%E5%A4%84%E7%90%86%EF%BC%9A%20%E5%88%B0,cd%20%2Fanaconda3%2Flib%2Fpython3.5%2Fsite-packages%2Fmatplotlib%2Fmpl-data%2Ffonts%2F%20ttf%20ls%20-al%20%7C%20grep%20simhei

http://t.csdn.cn/Askmw

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值