繁体   English   中英

如何设置 Matplotlib 轴图例的字体大小?

How to set font size of Matplotlib axis Legend?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个这样的代码:

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()

图例字体大小

从图中可以看出Fontsize中的设置不影响Legend Title字体大小。

如何将图例标题的字体大小设置为较小的大小?

8 个回复

这绝对是一个老问题,但也让我感到沮丧,其他答案都没有改变图例标题字体大小,而是改变了文本的其余部分。 因此,在我对 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})

受当前最佳答案的启发,我找到了一种更自然的方法来更改图例中的字体大小。 fontsize参数设置每个数据标签的字体大小,而title_fontsize参数设置标题的字体大小,如果你给图例一个标题。

import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([0,1,2],[2,1,2],label='test_data (fs=12)')
ax.legend(fontsize=12, title='TITLE (fs=30)',title_fontsize=30)

给出这样的图:
在此处输入图片说明

这是最快的:

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 文档中的更多信息

1 Matplotlib如何设置图例的字体类型

我想在Matplotlib中更改图例文本的字体类型。 我知道我可以做这样的事情: 但是我想使用中文字体类型,我不知道应该在上面的行中输入什么姓。 但是我确实有该中文字体类型的fontproperties对象。 但是,我还没有找到一种设置图例的fontproperties的方法。 ...

2 如何在图例中为matplotlib设置缩略图的大小

如何在图例中为matplotlib设置缩略图/图标的大小? 一种方法是操纵图例中的文本大小,以便使用plt.setp(fig.gca().get_legend().get_texts(), fontsize='15')可以使图标看起来相对较大/较小。 是否有任何直接方法可以更改表示图例中 ...

4 在matplotlib中设置轴标签字体大小的简洁方法

我正在寻找设置轴标签及其字体大小的最简洁方法。 我知道我可以这样做: 我也知道我可以使用此命令来设置标签: 但是,如果我尝试: 我收到此错误: 我可以在set方法中表示字体大小吗? 我想稍微整理一下我的代码并尽可能简洁。 ...

5 在matplotlib中更改图例字体大小后,如何更新图例标签间距?

我正在编写一个脚本,用于保存具有多种格式样式的图形,其中包括图例文本的字体大小。 rcparams或matplotlibrc文件中的legend.labelspacing指定标签间距,以字体大小的分数表示,因此,如果更改字体大小,我可能期望实际间距会改变。 但是,由于实际间距可能是在首次 ...

6 Matplotlib为双轴图设置图例标签

我使用以下类型的代码制作了条形图和线条图: 我想更改情节中每个系列的图例条目(例如,更改为AA而不是A ,依此类推),但我一直在努力寻找方法。 有人可以帮忙吗? 我尝试使用matplotlib 2.0.2运行ImportanceOfBeingErnest的代码,但收到以下错误,但 ...

8 Matplotlib:设置上标字体大小

在Matplotlib中,如何设置上标的字体大小(除了控制基础的字体大小)? 例如,使用带有科学记数法的轴的Matplotlib创建图形:可以很容易地设置刻度标签的字体大小,但是如何指定其指数的字体大小? 我想差异地对基数和指数进行控制(即,在刻度标签的字体大小上播放以获得所需大小的指数不是 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM