legend 函数 legend函数在数据可视化中的核心作用与高效应用方法详解

在Python的Matplotlib库中,`legend` 函数用于在图表中添加图例,帮助区分不同的数据系列。下面内容是详细说明和用法示例:

基本用法

1. 绘图时指定标签

在绘制数据系列时,使用 `label` 参数定义标签,接着调用 `plt.legend` 显示图例:

python

import matplotlib.pyplot as plt

x = [1, 2, 3, 4]

y1 = [1, 4, 9, 16]

y2 = [2, 3, 5, 8]

plt.plot(x, y1, label=’平方’) 设置标签

plt.plot(x, y2, label=’线性’) 设置标签

plt.legend 显示图例

plt.show

![图表示例]

关键参数

1. 位置控制 (`loc`)

通过 `loc` 参数指定图例位置:

python

plt.legend(loc=’upper right’) 右上角(默认)

plt.legend(loc=’lower left’) 左下角

plt.legend(loc=0) 自动选择最佳位置(0-10对应不同位置)

| 代码 | 位置 |

| `’best’` | 自动最佳位置 |

| `’upper right’` | 右上角 |

| `’center left’` | 左侧居中 |

2. 深入了解与样式

python

plt.legend(

title=”图例深入了解”, 添加深入了解

fontsize=12, 字体大致

shadow=True, 添加阴影

framealpha=0.5, 背景透明度(0-1)

facecolor=’lightgray’ 背景颜色

3. 调整布局

python

plt.legend(ncol=2) 分2列显示

plt.legend(bbox_to_anchor=(1, 1)) 将图例放在图表外(右侧)

自定义图例句柄

如果未在绘图时设置 `label`,可以手动创建图例:

python

line1, = plt.plot(x, y1, linestyle=’–‘)

line2, = plt.plot(x, y2, marker=’o’)

plt.legend([line1, line2], [‘系列A’, ‘系列B’]) 手动指定句柄和标签

常见难题解决

1. 图例不显示

  • 确保在绘图函数中设置了 `label` 参数。
  • 检查是否调用了 `plt.legend`。
  • 2. 图例覆盖数据

    使用 `loc` 调整位置,或通过 `bbox_to_anchor` 移出图表:

    python

    plt.legend(bbox_to_anchor=(1.05, 1), loc=’upper left’) 图表右侧

    3. 多子图共用图例

    在 `figure` 层级创建图例:

    python

    fig, (ax1, ax2) = plt.subplots(1, 2)

    ax1.plot(x, y1, label=’系列A’)

    ax2.plot(x, y2, label=’系列B’)

    fig.legend 为整个figure添加图例

    完整示例

    python

    import matplotlib.pyplot as plt

    x = [1, 2, 3, 4]

    y1 = [1, 4, 9, 16]

    y2 = [2, 3, 5, 8]

    plt.plot(x, y1, ‘ro-‘, label=’平方’) 红色圆点实线

    plt.plot(x, y2, ‘b^–‘, label=’线性’) 蓝色三角虚线

    plt.legend(

    loc=’lower right’,

    title=”函数类型”,

    fontsize=10,

    shadow=True,

    framealpha=0.8

    plt.title(“图例使用示例”)

    plt.xlabel(“X轴”)

    plt.ylabel(“Y轴”)

    plt.grid(True)

    plt.show

    掌握这些技巧后,可以灵活定制图例样式以适应各类图表需求!