在Python的Matplotlib库中,legend函数用于添加图例,帮助解释图表中不同数据系列或数据点的含义。legend函数有很多参数,可以自定义图例的各个方面,从位置到样式,从字体大小到边框。下面是一些常用参数的详细解释:
-
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 - 描述: 图例边框与坐标轴之间的间距(相对于坐标轴的大小)。
- 类型:
以下是一个简单的示例,展示了如何使用一些这些参数:
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', fontsize=12, title='Legend Title', title_fontsize=14, framealpha=0.8, shadow=True)# 显示图表
plt.show()
这个示例中,图例被放置在左上角,字体大小为12,标题为“Legend Title”,标题的字体大小为14,边框透明度为0.8,并添加了阴影效果。
