我想编写一个函数来更改我传递给它的图形中所有标签的字体,而不实际更改标签本身。
这对于我已经创建并且需要具有统一字体样式的图形非常有用。
目前我正在使用多个字体词典:
titleFont = {'family' : 'Arial',
'weight' : 'bold',
'size' : 20}
axesFont = {'family' : 'Arial',
'weight' : 'bold',
'size' : 18}
axesTickFont = {'family' : 'Arial',
'weight' : 'bold',
'size' : 16}`
然后使用以下命令设置字体大小:
ax.set_title('My Plot',**titleFont)
问题是,使用上面的命令,我需要指定一个情节标题,当我想要做的就是设置现有标题的字体样式。
这样的事情是理想的:
def set_fonts(axis):
axis.set_title(**titleFont)
axis.set_ylabel(**axesFont)
axis.set_xlabel(**axesFont)
return axis
答案 0 :(得分:1)
这可能不是最干净的解决方案,但它应该做你想做的事情:
def set_fonts(axis):
axis.set_title(axis.get_title(), **titleFont)
axis.set_ylabel(axis.get_ylabel(), **axesFont)
axis.set_xlabel(axis.get_xlabel(), **axesFont)
return axis
否则,您可以直接访问相关的艺术家实例,这样可以避免重新分配文本:
def set_fonts(axis):
plt.setp(axis.title, **titleFont)
plt.setp(axis.xaxis.label, **axesFont)
plt.setp(axis.yaxis.label, **axesFont)
return axis