matplotlib 子图添加图例的两种实现方式

季宁
季宁
发布时间:2026-10-11 | 2人浏览过
原创

本文介绍在 matplotlib 中为子图添加图例的两种方法。第一种通过 plt.legend() 手动指定句柄和标签;第二种在绘图时直接设置 label 参数并调用 plt.legend()。文章提供了完整的代码示例及效果说明,帮助开发者快速掌握子图图例的添加技巧。

matplotlib 给子图添加图例的方法

在使用 matplotlib 绘制包含多个子图的图表时,为每个子图添加图例(Legend)是提升图表可读性的关键步骤。针对子图添加图例,主要有两种常用的实现方式:手动指定句柄与标签,以及在绘图时直接定义标签。

方法一:手动指定句柄和标签

这种方法的核心在于获取绘图对象(句柄),然后在调用 plt.legend() 时,通过列表形式显式传入句柄和对应的标签字符串。这种方式灵活性较高,适合需要对图例进行精细控制的场景。

import matplotlib.pyplot as plt

# 定义数据
x = [1,2,3,4,5,6,7,8]
y = [5,2,4,2,1,4,5,2]

# 创建第一个子图
axe1 = plt.subplot(211)
s1 = axe1.scatter(x,y, color='r', s=25, marker="o")
# 手动指定图例句柄和标签
plt.legend([s1],['A'])

# 创建第二个子图
axe2 = plt.subplot(212)
s2 = axe2.scatter(x,y, color='g', s=25, marker="o")
# 手动指定图例句柄和标签
plt.legend([s2],['B'])

plt.show()

方法二:绘图时直接设置 label 参数

第二种方式更为简洁。在调用绘图函数(如 scatter)时,直接通过 label 参数指定图例名称。随后只需调用 plt.legend() 即可自动识别并显示所有已设置标签的图例。这种方式代码更紧凑,是日常开发中推荐的做法。

# 在绘图时直接指定 label
s1 = axe1.scatter(x,y, color='r', s=25, marker="o", label='A')
# 直接调用 legend 即可
plt.legend()

# 第二个子图同理
s2 = axe2.scatter(x,y, color='g', s=25, marker="o", label='B')
plt.legend()

通过上述两种方法,开发者可以根据实际需求选择最适合的代码风格。第一种方法适合需要自定义图例顺序或样式的场景,而第二种方法则更适合快速构建图表。无论选择哪种方式,最终生成的图表都能清晰地展示各子图的数据分布与对应标签。

以上就是 matplotlib 给子图添加图例的详细内容,更多关于 matplotlib 子图操作、Python 数据可视化的资料请关注本站其它相关文章!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表