将matplotlib.pyplot.rcparams与未安装的自定义字体一起使用

时间:2017-12-11 17:00:42

标签: python matplotlib fonts

我试图在matplotlib图中使用未安装在系统中的自定义ttf字体作为文本元素。

with plt.style.context('mplparams.mplstyle'):
    plt.plot(np.sin(np.linspace(0, 3 * np.pi)), '-o')

我知道我可以使用FontManager更改文本属性,但我正在寻找一个只涉及外部配置文件的解决方案。

目前我只知道我可以将font.sans-serif更改为字体名称,而不是字体路径。

这可能吗?

1 个答案:

答案 0 :(得分:2)

Fontmanager必须知道要使用的字体,否则你无法将其输入到图中。为了通过rcParams指定字体,必须在matplotlib寻找的文件夹中找到该字体。如果您不想安装任何内容,可以将.ttf文件复制到matplotlib字体文件夹。在我的情况下,这是

python\Lib\site-packages\matplotlib\mpl-data\fonts

然后你需要清除font.chache。通过print(matplotlib.get_cachedir())找出其路径并删除fontList文件。 (或者如果你愿意,可以先备份。)

然后运行指定了rcParam的脚本

font.sans-serif : <name of font>

或使用

plt.rcParams['font.sans-serif'] = "<name of font>"

另见this question