[英]How to set font size of Matplotlib axis Legend?
我有这样的代码:
import matplotlib.pyplot as plt
from matplotlib.pyplot import *
from matplotlib.font_manager import FontProperties
fontP = FontProperties()
fontP.set_size('xx-small')
fig=plt.figure()
ax1=fig.add_subplot(111)
plot([1,2,3], label="test1")
ax1.legend(loc=0, ncol=1, bbox_to_anchor=(0, 0, 1, 1),
prop = fontP,fancybox=True,shadow=False,title='LEGEND')
plt.show()
在 plot 中可以看到 Fontsize 中的设置不影响 Legend Title 字体大小。
如何将图例标题的字体大小设置为较小的大小?
这绝对是一个老问题,但也让我感到沮丧,其他答案都没有改变图例标题字体大小,而是改变了文本的其余部分。 因此,在我对 matplotlib 文档猛烈抨击一段时间后,我想到了这个。
legend = ax1.legend(loc=0, ncol=1, bbox_to_anchor=(0, 0, 1, 1),
prop = fontP,fancybox=True,shadow=False,title='LEGEND')
plt.setp(legend.get_title(),fontsize='xx-small')
从 Matplotlib 3.0.3 开始,您还可以使用以下命令对其进行全局设置
plt.rcParams['legend.title_fontsize'] = 'xx-small'
以下是更改图例列表和/或图例标题的字体大小的方法:
legend=plt.legend(list,loc=(1.05,0.05), title=r'$\bf{Title}$') #Legend: list, location, Title (in bold)
legend.get_title().set_fontsize('6') #legend 'Title' fontsize
plt.setp(plt.gca().get_legend().get_texts(), fontsize='12') #legend 'list' fontsize
我的头也撞到了它,这是另一种更流畅的方法:
leg = ax.legend()
leg.set_title('A great legend',prop={'size':14})
我不知道如何为单个情节设置它,但我总是在全局范围内进行设置:
plt.rc('legend',**{'fontsize':6})
这是最快的:
plt.legend(loc=2,prop={'size':6})
我一般都是这样的。 情节完成后,我会执行以下操作
plt.legend(loc=0, numpoints=1)
leg = plt.gca().get_legend()
ltext = leg.get_texts()
plt.setp(ltext, fontsize='small')
我不知道这是否适合你
现在在 2021 年,使用 matplotlib 3.4.2,您可以设置图例字体
plt.legend(title="My Title", fontsize=10, title_fontsize=15)
其中fontsize
是图例中项目的字体大小, title_fontsize
是图例标题的字体大小。 matplotlib 文档中的更多信息
最简单的方法是使用
标题字体大小
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.