Practice makes perfect
文献集锦
如何理论创新?
管理学理论集锦
Python实际应用
聚类标准误与固定效应
巫师3:狂猎
Stata应用技巧
Python知识与技巧
双重差分法(DID)
创新文献阅读与摘要
计量经济学
Python绘图相关
plt.legend()
type
status
date
slug
summary
tags
category
icon
password
网址
作者
标签
文章链接
发布时间
来源
plt.legend() 是 Python 可视化库 Matplotlib 中用于在图表上添加图例 (Legend) 的核心函数。图例的主要作用是解释图表中的不同视觉元素(如不同的线条、颜色、标记等)所代表的含义。如果你使用 Seaborn (sns) 或 Pandas 的
.plot() 方法,它们底层调用的也是 Matplotlib 的 plt.legend()。1. 基本原理
当你绘制多条曲线时,
plt.legend() 会自动收集所有已经绘制的元素(如通过 plt.plot() 或 ax.plot() 绘制的线条),并查找这些元素在绘制时设置的 label 属性,然后将这些标签和对应的线条/标记一起显示在一个小框中。基础用法
在使用
plt.legend() 之前,你必须在绘制元素时提供 label 参数:输出:

2. 常用参数详解
plt.legend() 提供了极其丰富的参数来控制图例的外观、位置和内容。参数 | 描述 | 常用值/示例 |
loc | 控制图例的位置。 | 'best' (默认,自动选择最佳位置), 'upper right', 'lower left', etc. |
fontsize | 控制图例文字的大小。 | 数字 (如 12), 或字符串 (如 'small', 'large')。 |
frameon | 控制是否绘制图例的边框和背景框。 | False (移除边框,使图例悬浮), True (默认)。 |
ncol | 控制图例的列数。 | 1 (默认,单列), 2, 3 (用于节省空间)。 |
title | 为整个图例设置一个标题。 | 字符串,如 'Data Sets' ;设置为None则取消标题 |
labelcolor | 控制图例文本的颜色。 | 'linecolor' (使文本颜色与线条颜色一致), 或具体的颜色字符串。 |
bbox_to_anchor | 精确控制位置,常用于将图例放在绘图区域外部。 | 示例: (1.05, 1),通常与 loc='upper left' 配合使用。 |
示例:自定义图例外观
输出:

3. 高级定位技巧 (bbox_to_anchor)
当默认的
loc 参数无法满足需求时,可以使用 bbox_to_anchor 来精确控制图例的摆放位置。它接受一个元组 (x, y),通常用于将图例放置在绘图区域之外,以免遮挡数据。bbox_to_anchor=(1.05, 1):将图例的锚点(anchor point)放在 Axes 区域的右上角(X=1.05,Y=1.0),然后配合loc='upper left',这意味着图例的左上角会从 $(1.05, 1.0)$ 开始绘制,使其位于图表的右侧。
- 使用
bbox_extra_artists和bbox_inches参数,防止图像保存时被裁剪
bbox_extra_artists指定Artist的列表,在计算bbox最小边界时会将这些Artist考虑在内;如果將bbox_inches设定为tight,它将计算出图中的紧凑型bbox
输出:

Prev
sns.lineplot()
Next
pd.cut()
Loading...