一、问题
使用SHAP做机器学习可解释性时,绘图负号不编码报错:
Glyph 8722 missing from current font
二、解决过程
发现使用英文编码可以正常显示负号,说明无法正常编码的原因类似于matplotlib对中文字体的不支持,但是一直使用的plt.rcParams['axes.unicode_minus']=False
无效,如下图
(1) 使用中文字体无法显示负号
(2) 使用英文字体可以显示负号,但自然无法显示中文
三、解决方法
显然,只需要一个兼容中英文的字体即可,即微软雅黑,设置如下
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']