首先要做的是: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等网站上找到的每一个解决方案。我遇到这个问题已经一年多了,但我找不到合适的解决方案。
- 在系统中安装字体
- 找到字体文件(在本例中为
C:WindowsFontsHelvetica 400.ttf
( -
运行
fp = matplotlib.font_manager.FontProperties(fname=r"C:WindowsFontsHelvetica 400.ttf") print(fp.get_name())
以打印字体的名称。在这种情况下,它将是
Helvetica
。 -
重新生成字体缓存。这可以通过从matplotlib文件夹中删除
fontlist-vXXX.json
(其中XXX = 310
用于3.1.0版本(文件来完成。或者通过代码运行matplotlib.font_manager._rebuild()
。 - 使用步骤3中的字体名称。在代码中,例如
plt.rcParams['font.family'] = ['Helvetica']