Python3.11升级后Pyplot中Font Awesome图标显示异常求助
Python 3.11下Matplotlib中Font Awesome图标显示异常的解决方法
修正路径转义问题
原代码中的路径使用了未转义的反斜杠\,Python字符串里反斜杠会被解析为转义字符,可能导致字体文件找不到。将路径改为原始字符串或转义反斜杠:# 原始字符串写法 path = r'...\fontawesome-free-5.15.4-desktop\fontawesome-free-5.15.4-desktop\otfs\' # 或者转义反斜杠 path = '...\\fontawesome-free-5.15.4-desktop\\fontawesome-free-5.15.4-desktop\\otfs\\'直接使用Unicode字符替代fa.icons调用
可能Python 3.11环境下fa库的字符映射出现异常,直接用对应图标的Unicode值调用。比如左箭头(arrow-left)的Unicode是\uf060,修改代码:plt.text(0.5, 0.5, '\uf060', fontproperties=prop)图标对应的Unicode可在Font Awesome官方文档或本地字体文件的字符信息中查询。
清除Matplotlib字体缓存
Python版本升级后,Matplotlib的字体缓存可能未同步更新,导致字体加载异常。找到缓存文件删除后重启Python:- Windows:
C:\Users\<你的用户名>\.matplotlib\fontlist-v*.json(*为版本号,如v330) - Linux/macOS:
~/.matplotlib/fontlist-v*.json
- Windows:
验证字体加载状态
添加代码确认字体是否成功加载,排查路径问题:print(prop.get_name()) # 遍历所有加载的字体,查找Font Awesome for font in fmgr.fontManager.ttflist: if 'Awesome' in font.name: print(f"找到字体: {font.name}, 路径: {font.fname}")如果没有输出对应字体,说明路径仍有错误,需确认字体文件的实际位置。
改用系统安装的Font Awesome字体
将Font Awesome的otf文件安装到系统(Windows双击安装,Linux/macOS放入系统字体目录),之后直接通过字体名称调用,无需指定路径:prop = fmgr.FontProperties(family='Font Awesome 5 Free', weight='bold', size=2)
内容的提问来源于stack exchange,提问作者quantc0d32
相关产品推荐
相关产品推荐

