8

我正在尝试在 matplotlib 中使用 TTF 字体;.ttf 文件已下载并保存在我的机器上。我已按照本网站上的其他说明font_manager使用;选择字体 但是,我尝试使用字体属性生成的任何文本仍然出现在默认的 matplotlib 字体中。

我知道 Python 确实成功地找到了字体文件,因为prop.get_name()类似的命令确实显示了我想要的字体的属性 - 但这不是我图中出现的内容。有什么建议么?

举个例子:

import matplotlib.pyplot as plt
import matplotlib.font_manager as fm

fig, ax = plt.subplots()

prop = fm.FontProperties(fname='/Users/smith/fonts/coolfont.ttf')
ax.set_title('Text in a cool font', fontproperties=prop, size=40)

fig.show()
4

1 回答 1

5

这是因为您使用的后端。

当我尝试对我的默认后端做类似的事情时,MacOScairo 没有工作。

但是,当我切换到aggTKagg运行您的示例时,自定义字体就在那里。

这是您的代码已修改,以便在我的机器上运行

#!/usr/bin/env python
import matplotlib
matplotlib.use( "agg" )
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm

fig, ax = plt.subplots()
prop = fm.FontProperties(fname='Outwrite.ttf')
ax.set_title('Text in a cool font', fontproperties=prop, size=40)
plt.show()
plt.savefig('test.png')

生成的图像带有自定义字体。

于 2013-01-05T12:16:26.160 回答