文章目录
1. 针对问题
用matplotlib画图显示中文乱码问题:
RuntimeWarning: Glyph 40664 missing from current font.
font.set_text(s, 0.0, flags=flags)
2. 确定当前环境字体库位置
import matplotlib
print(matplotlib.matplotlib_fname())
输出:
/Users/xxx/xxx/venv/lib/python3.8/site-packages/matplotlib/mpl-data/matplotlibrc
3. 下载SimHei字体
字体下载链接:SimHei
将SimHei.ttf字体拷贝到matplotlib字体库:
/Users/xxx/xxx/venv/lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf/
4. 修改matplotlibrc配置文件
打开该文件,修改如下三个字段:
font.family : sans-serif
# 去掉前面的#
font.sans-serif : SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
# 去掉前面的#,并在冒号后面添加SimHei
axes.unicode_minus : False
# 去掉前面的#,并将True改为False, 作用是解决负号‘-’显示为方块的问题
5. 删除matplotlib缓存列表
cd .matplotlib
rm -rf *
6. 重启python环境,并设置SimHei字体
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
重新画图: