如何在matplotlib中使用(随机)* .otf或* .ttf字体?

如何在我的电脑上的字体库中使用任何types的字体(例如*otf*ttf )在我所有的matplotlib数字中?

看到这里的例子: http : //matplotlib.sourceforge.net/examples/api/font_file.html

一般来说,如果你想使用特定的.ttf文件,你可以做这样的事情。 (请记住,指向一个特定的字体文件通常是一个坏主意!)

 import matplotlib.font_manager as fm import matplotlib.pyplot as plt fig, ax = plt.subplots() ax.plot(range(10)) prop = fm.FontProperties(fname='/usr/share/fonts/truetype/groovygh.ttf') ax.set_title('This is some random font', fontproperties=prop, size=32) plt.show() 

在这里输入图像描述

通常,您只需指向字体的名称,让matplotlib担心find特定的文件。 例如

 import matplotlib.pyplot as plt plt.plot(range(10)) plt.title('This is some random font', family='GroovyGhosties', size=32) plt.show() 

如果你想matplotlib总是使用特定的字体,那么定制你的.matplotlibrc文件 。 ( font.family是你想要设置的,注意你应该指定字体的名称,而不是特定的.ttf文件的path。)

作为dynamic地执行此操作的示例(即不设置特定的.matplotlibrc文件):

 import matplotlib as mpl mpl.rcParams['font.family'] = 'GroovyGhosties' import matplotlib.pyplot as plt plt.plot(range(10)) plt.title('Everything is crazy!!!', size=32) plt.show() 

在这里输入图像描述

在* nix上,您可以通过启用matplotlib的fontconfig后端来使用所有的系统字体。

然而,matplotlib并不真正与fontconfig库通信,而是通过运行fontconfig cli工具来模拟它的行为。

因此,encryptionmatplotlib fontconfigcaching,以便发现新的字体可以是一个救星(这个caching的存在是缺乏完整的fontconfig集成的直接certificate)。