如何使用绝对路径更改matplotlib中的字体?

时间:2014-08-09 15:28:31

标签: fonts matplotlib

使用matplotlib.rc我可以更改字体系列以及每个系列中的字体。

rc('font',family='serif')
rc('font',serif='Helvetica')

但是,我有一个特定的TTF字体文件没有安装在系统中,我想使用它。有没有办法指定字体配置的绝对路径?

1 个答案:

答案 0 :(得分:1)

有一种方法可以使用未安装到系统中的字体。例如:

import matplotlib.font_manager
import matplotlib.pyplot as plt
import matplotlib.text

# load the font properties
font = matplotlib.font_manager.FontProperties(fname="/tmp/Warenhaus-Standard.ttf")
font.set_size(28)

# draw a figure
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_xlim(0,1)
ax.set_ylim(0,1)
ax.add_artist(matplotlib.text.Text(0.05, 0.45, "Special Font (Warenhauser)", fontproperties=font))

创建:

enter image description here

如果您查看代码并使用有状态接口的PyLab样式,代码的重要部分仍然相同(font=...和kwarg fontproperties=font)。

但是,有几点需要注意。也许最重要的是,如果没有安装特殊字体​​(如果后端使用OS字体,至少MacOSX后端那样),则不一定会在屏幕上显示特殊字体,但它仍然由savefig保存。

查看matplotlib.font_manager文档可能非常有益。字体管理实际上非常复杂。