在matplotlib中,如何更改单个图形的字体大小?
这段代码:
# changes the fontsize of matplotlib, not just a single figure
matplotlib.rcParams.update({'font.size': 22})
有没有比先为一个图形设置这个,然后再把它改回来更好的方法?
1 个回答
3
这段内容讲的是如何处理所有可能的文本对象,并为每个对象设置字体大小。(注意,这个方法已经根据之前的反馈进行了更新)。它使用了Artist基类的findobj方法。match这个关键词接受一个布尔函数,这个函数会对每个属于图形的子对象进行测试。我用这个方法来检查这个艺术家是否属于'matplotlib.text'模块。这个方法足够通用,可以用于任何艺术家,而不仅仅是图形。
def set_fontsize(fig,fontsize):
"""
For each text object of a figure fig, set the font size to fontsize
"""
def match(artist):
return artist.__module__ == "matplotlib.text"
for textobj in fig.findobj(match=match):
textobj.set_fontsize(fontsize)
这个内容是根据对这个问题的回答更新的:在例程或类定义中导入Python模块有什么问题吗?