如何以最直接的方式在matplotlib GLOBALLY中使用任何系统字体



首先要做的是:Windows 10、python 3.8、matplotlib 3。(我在Anaconda python 3.7上也遇到过同样的问题(

我已经在C:\Windows\Fonts文件夹中安装了来自此源的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和HelveticaStandard。它适用于Trebuchet,据我所知,它只安装在我的系统字体中,而没有安装在任何matplotlib字体文件夹中。

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

  1. 在系统中安装字体
  2. 找到字体文件(在本例中为C:WindowsFontsHelvetica 400.ttf(
  3. 运行

    fp = matplotlib.font_manager.FontProperties(fname=r"C:WindowsFontsHelvetica 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']

相关内容

最新更新