我的应用有自定义字体
app_path='/home/user1/myapp'
fname='/home/user1/myapp/font/myfont.ttf'
要在matplotlib中设置globalfont,文档是这样说的:
plt.rcParams['font.sans-serif']=['xxx font']
但只有当字体已经在系统字体路径中时才有效,并且我必须在我的应用程序路径中使用我的自定义字体'/home/user 1/myapp/font/myfont.ttf'
我知道有这样一种方法:
fname='/home/user1/myapp/font/myfont.ttf'
myfont=fm.FontProperties(fname=fname)
ax1.set_title('title test',fontproperties=myfont)
但这不是我想要的,我不想一直设置'fontproperties',因为有很多代码需要修改
3条答案
按热度按时间q43xntqr1#
这样解决了问题:
fontpaths
kwarg也可以是一个字符串,以防您只有一个目录可以导入。bgtovc5b2#
2021年更新
我最近遇到了这个问题,发现这是最简单的处理方法。
添加字体是重要的部分,否则,将无法检测到字体:
注意,这需要matplotlib〉=3.2。对于旧版本,
addfont
方法不存在,上面的方法将失败,并返回AttributeError: 'FontManager' object has no attribute 'addfont'
0x6upsns3#
对于较新的matplotlib模块(例如版本〉=3.2)
createFontList已弃用。
但是,你可以用ttf文件路径和自定义名称来创建一个字体条目
然后将其添加到fontManager.ttflist,并将matplotlib.rcParams ['font.familt']分配给该名称。
现在你可以不用fontproperties等参数来绘图了。