python matplotlib legend()参数详解
在Python的Matplotlib库中,legend函数用于添加图例,帮助解释图表中不同数据系列或数据点的含义。legend函数有很多参数,可以自定义图例的各个方面,从位置到样式,从字体大小到边框。下面是一些常用参数的详细解释:

import matplotlib.pyplot as plt
# 创建一些数据
x = [1, 2, 3, 4]
y1 = [1, 4, 9, 16]
y2 = [1, 2, 3, 4]
# 绘制数据
plt.plot(x, y1, label='y = x^2')
plt.plot(x, y2, label='y = x')
# 添加图例
plt.legend(
loc='upper left', # loc 图例的位置
fontsize=12, # 图例中文字的大小
title='Legend Title', # 图例的标题
title_fontsize=14, # 图例标题的字体大小
frameon=True, # 是否显示图例的边框,默认值: True
framealpha=0.8, # 图例边框的透明度
facecolor='yellow', # 图例的背景颜色
edgecolor='red', # 图例边框的颜色
shadow=True, # 是否在图例周围添加阴影效果
# 用于手动指定图例的位置。可以是两个值的元组(表示相对于图表左下角的(x, y)位置),
# 或四个值的元组(表示一个矩形框的左下角和右上角的(x, y)位置)
bbox_to_anchor=(0.03,0.9),
ncol=2, # 图例中列的数目
handletextpad=0.2, # 图例标记与文字之间的间距(相对于字体大小) 一般不需要调整
labelspacing=0.5, # 图例中各标签之间的垂直间距(相对于字体大小) 一般不需要调整
)
# 显示图表
plt.show()
-
loc: - 类型:
str或int - 默认值:
'best' - 描述: 指定图例的位置。可以是字符串(如
'upper right'、'lower left'等)或数字代码。'best'表示Matplotlib会自动选择最佳位置。可选参数表如下:

-
fontsize: - 类型:
str或float - 默认值:
rcParams['legend.fontsize'](默认为medium) - 描述: 图例中文字的大小。
-
title: - 类型:
str - 默认值:
None - 描述: 图例的标题。
-
title_fontsize: - 类型:
str或float - 默认值:
rcParams['axes.titlesize'](默认值为large) - 描述: 图例标题的字体大小。
-
frameon: - 类型:
bool - 默认值:
True - 描述: 是否显示图例的边框。
-
framealpha: - 类型:
float - 默认值:
1.0 - 描述: 图例边框的透明度。
-
facecolor: - 类型:
str或rgb或rgba - 默认值:
'inherit'(从axes.facecolor继承) - 描述: 图例的背景颜色。
-
edgecolor: - 类型:
str或rgb或rgba - 默认值:
'0.8'(灰色) - 描述: 图例边框的颜色。
-
shadow: - 类型:
bool - 默认值:
False - 描述: 是否在图例周围添加阴影效果。
-
bbox_to_anchor: - 类型:
(float, float)或(float, float, float, float) - 默认值:
(0., 1.02, 1., .102)(相对于图表的坐标) - 描述: 用于手动指定图例的位置。可以是两个值的元组(表示相对于图表左下角的(x, y)位置),或四个值的元组(表示一个矩形框的左下角和右上角的(x, y)位置)。
-
ncol: - 类型:
int - 默认值:
1 - 描述: 图例中列的数目。如果大于1,图例将分成多列显示。
-
numpoints: - 类型:
int - 默认值:
1 - 描述: 每个图例条目的标记点数。
-
handletextpad: - 类型:
float - 默认值:
0.2(相对于字体大小) - 描述: 图例标记与文字之间的间距。
-
labelspacing: - 类型:
float - 默认值:
0.5(相对于字体大小) - 描述: 图例中各标签之间的垂直间距。
-
handlelength: - 类型:
float - 默认值:
2.(点单位) - 描述: 图例标记的长度。
-
handleheight: - 类型:
float或None - 默认值:
None(与handlelength相同) - 描述: 图例标记的高度。如果为
None,则与handlelength相同。 -
borderpad: - 类型:
float - 默认值:
0.3(相对于字体大小) - 描述: 图例边框与其内容之间的间距。
-
columnspacing: - 类型:
float - 默认值:
2.(点单位) - 描述: 图例中各列之间的间距。
-
markerscale: - 类型:
float - 默认值:
1. - 描述: 图例标记的缩放比例。
-
prop: - 类型:
dict - 默认值:
None - 描述: 一个字典,用于指定图例中文字的字体属性,如
family、style、weight、size、color等。 -
mode: - 类型:
{"expand", None} - 默认值:
None - 描述: 如果为
"expand",则图例将扩展以填充bbox_to_anchor指定的区域。 -
fancybox: - 类型:
bool - 默认值:
False - 描述: 是否使用圆角边框。
-
shadow_offset: - 类型:
(float, float) - 默认值:
(0.4, -0.5)(点单位) - 描述: 阴影相对于图例的偏移量。
-
borderaxespad: - 类型:
float - 默认值:
0.5 - 描述: 图例边框与坐标轴之间的间距(相对于坐标轴的大小)。
作者:请一直在路上