我正在尝试在matplotlib中使用TTF字体; .ttf文件已下载并在我的机器上本地存在。我已按照other instructions on this site使用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()
答案 0 :(得分:4)
因为你正在使用的后端。
当我尝试使用默认后端MacOS
和cairo
后端执行类似操作时,它无法正常工作。
然而,当我切换到agg
和TKagg
并运行您的示例时,自定义字体就在那里。
以下是您的代码已修改,以便在我的计算机上运行
#!/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')
生成的图像带有自定义字体。