如何以最直接的方式全局使用matplotlib中的任何系统字体?

2024-07-07 08:19:53 发布

您现在位置:Python中文网/ 问答频道 /正文

第一件事:Windows10、Python3.8、Matplotlib3。(我对Anaconda python 3.7也有同样的问题)

我已经在我的C:\Windows\Fonts文件夹中从this源安装了Helvetica。我已尝试运行此脚本,但出现以下错误:

import matplotlib.pyplot as plt
from matplotlib import rcParams

rcParams['font.family'] = ['Helvetica Normal']

fig,ax = plt.subplots()

plt.show()
findfont: Font family ['Helvetica Normal'] not found. Falling back to DejaVu Sans.

在那之前我试过Helvetica和Helvetica Standard。它与Trebuchet一起工作,据我所知,Trebuchet仅安装在我的系统字体中,而不是任何matplotlib字体文件夹中

我尝试了很多解决方案,但我只是不知道如何全局指定matplotlib的字体。我已经尝试了在github、stackoverflow等上找到的所有解决方案。我已经有一年多的时间遇到这个问题了,但我找不到合适的解决方案


Tags: import文件夹matplotlibwindows字体pltanaconda解决方案
1条回答
网友
1楼 · 发布于 2024-07-07 08:19:53
  1. 在系统中安装字体
  2. 找到字体文件(在本例中为C:\Windows\Fonts\Helvetica 400.ttf
  3. fp = matplotlib.font_manager.FontProperties(fname=r"C:\Windows\Fonts\Helvetica 400.ttf")
    print(fp.get_name())
    

    以获取打印的字体名称。在这种情况下是Helvetica

  4. 重建字体缓存。这可以通过从matplotlib文件夹中删除fontlist-vXXX.json(其中XXX = 310对于版本3.1.0)文件来实现。或者通过代码运行matplotlib.font_manager._rebuild()

  5. 使用步骤3中的字体名称。在您的代码中,例如plt.rcParams['font.family'] = ['Helvetica']

相关问题 更多 >