You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python Matplotlib图表中将字体改为Arial Narrow?附报错求助

解决Matplotlib设置Arial Narrow字体报错的方案

我之前在Windows环境下折腾Matplotlib字体时也踩过类似的坑,尤其是Arial Narrow这种不是系统默认预装的字体,给你几个针对性的排查和解决步骤,应该能搞定:

  • 先确认字体是否真的安装在系统里
    打开Windows 7的控制面板→字体,搜索「Arial Narrow」,如果搜不到,说明你的系统里压根没装这个字体。可以从Office安装包提取对应的字体文件(一般是ARIALN.TTF),或者找靠谱的来源下载安装,安装完成后再继续下一步。

  • 强制刷新Matplotlib的字体缓存
    Matplotlib会把系统里的字体缓存起来,新装的字体不会自动被识别。你可以这么操作:

    1. 在Spyder里运行这段代码找到缓存目录:
      import matplotlib
      print(matplotlib.get_cachedir())
      
    2. 关闭Spyder,找到这个目录下的fontlist-v300.json(不同Matplotlib版本文件名可能略有差异,比如v200),直接删除它。
    3. 重启Spyder,Matplotlib会重新扫描系统字体并生成新的缓存。
  • 代码里的正确设置方式
    很多人踩坑是因为字体名称写错或者参数用错,Windows下Arial Narrow的正确名称是'Arial Narrow'(注意空格和大小写)。给你两种可靠的设置方式:

    • 全局设置(所有文本都生效):
      import matplotlib.pyplot as plt
      
      # 全局配置字体
      plt.rcParams['font.family'] = 'Arial Narrow'
      # 如果需要设置字体大小,也可以一起配置
      plt.rcParams['font.size'] = 12
      
      # 测试图表
      plt.plot([1,2,3], [4,5,6])
      plt.title('测试标题')
      plt.xlabel('X轴标签')
      plt.ylabel('Y轴标签')
      plt.xticks()
      plt.yticks()
      plt.show()
      
    • 单独指定字体(适合局部文本调整):
      要是全局设置没生效,还可以直接指定字体文件路径:
      import matplotlib.pyplot as plt
      import matplotlib.font_manager as fm
      
      # Windows下Arial Narrow的默认路径,要是你的路径不一样就改成自己的
      font_path = 'C:/Windows/Fonts/ARIALN.TTF'
      arial_narrow = fm.FontProperties(fname=font_path)
      
      plt.plot([1,2,3], [4,5,6])
      plt.title('测试标题', fontproperties=arial_narrow)
      plt.xlabel('X轴标签', fontproperties=arial_narrow)
      plt.ylabel('Y轴标签', fontproperties=arial_narrow)
      plt.xticks(fontproperties=arial_narrow)
      plt.yticks(fontproperties=arial_narrow)
      plt.show()
      
  • 排查报错细节
    如果还是报错,先看清楚错误信息:

    • 如果是「找不到字体」相关的错误,回到前两步检查字体安装和缓存刷新;
    • 如果是参数错误,比如AttributeError,检查代码里的参数名是不是写错了(比如把fontfamily写成font-family,或者fontproperties拼错)。

内容的提问来源于stack exchange,提问作者Gergő Barta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:08:30