You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改matplotlib代码为整个numpy数组添加单个图例标签?

解决Matplotlib绘制多维数组时图例过多的问题

当用plt.plot()绘制多维numpy数组时,函数会自动将数组的每一列作为单独曲线绘制,传入的label参数会被应用到每一条曲线上,导致图例出现重复标签(数量等于数组列数)。要实现只为整个数组添加一个图例标签,有两种常用方法:

方法一:利用绘图返回的线条对象创建图例

捕获plot()返回的线条对象集合,只取其中一个代表整个数组,再手动指定图例标签:

import numpy as np
import matplotlib.pyplot as plt

a = np.random.rand(10,2)
b = np.random.rand(10,4)

plt.figure()
# 获取每组曲线的线条对象
lines_a = plt.plot(a, 'blue')
lines_b = plt.plot(b, 'red')
# 仅用每组的第一条曲线创建图例
plt.legend([lines_a[0], lines_b[0]], ['a', 'b'])
plt.show()

方法二:手动创建自定义图例条目

不依赖绘图生成的线条,直接创建图例样式条目并指定标签:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.lines import Line2D

a = np.random.rand(10,2)
b = np.random.rand(10,4)

plt.figure()
plt.plot(a, 'blue')
plt.plot(b, 'red')
# 自定义图例线条样式
custom_legend = [
    Line2D([0], [0], color='blue', linewidth=2),
    Line2D([0], [0], color='red', linewidth=2)
]
plt.legend(custom_legend, ['a', 'b'])
plt.show()

内容的提问来源于stack exchange,提问作者Nir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 04:10:15