报错:RuntimeWarning: Glyph 20108 missing from current font. font.set_text(s, 0.0, flags=flags)解决方法


运行环境:Mac Python 3.8 Anaconda Spyder

报错信息

RuntimeWarning: Glyph 20108 missing from current font. font.set_text(s, 0.0, flags=flags)

原因:matplotlib中文乱码

解决方法

分为两种情况
有中文字体,直接加入下面的两行代码即可正常显示

plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False ## 设置正常显示符号

无中文字体,即加入上面两行代码后依旧报错的

  1. 打开终端,输入python进入python环境,再输入下列代码,查看字体路径
import matplotlib    
print(matplotlib.matplotlib_fname())

  1. 下载SimHei字体文件。百度搜一下随便找个网站下载,要注意是.ttf格式的文件。把下载好的文件放入/opt/anaconda3/lib/python3.8/site-packages/matplotlib/mpl-data/matplotlibrc/fonts/ttf目录下

  2. 进入终端python环境,输入代码查看缓存文件的路径

import matplotlib
matplotlib.get_cachedir()
  1. 复制路径,按 control-D退出python环境,输入rm -rf 路径删除缓存文件
  2. 修改matplotlibrc文件,位于/opt/anaconda3/lib/python3.8/site-packages/matplotlib/mpl-data/目录下,修改内容见下
 #  去掉#   
 font.family         : sans-serif   

 #  去掉#,在冒号后添加 SimHei
 font.sans-serif: SimHei, DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

 #  去掉#,将True改为False
 axes.unicode_minus  : False
  1. 最后重启Spyder即可。

注:改完文件后就不要再加文章开头的两行代码了。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM