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 参数:
输出:
notion image

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' 配合使用。

示例:自定义图例外观

输出:
notion image

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
输出:
notion image
Prev
sns.lineplot()
Next
pd.cut()
Loading...
Article List
Practice makes perfect
文献集锦
如何理论创新?
管理学理论集锦
Python实际应用
聚类标准误与固定效应
巫师3:狂猎
Stata应用技巧
Python知识与技巧
双重差分法(DID)
创新文献阅读与摘要
计量经济学
Python绘图相关