在Python的Matplotlib库中,legend函数用于添加图例,帮助解释图表中不同数据系列或数据点的含义。legend函数有很多参数,可以自定义图例的各个方面,从位置到样式,从字体大小到边框。下面是一些常用参数的详细解释:

在这里插入图片描述

import matplotlib.pyplot as plt

# 创建一些数据
x = [1, 2, 3, 4]
y1 = [1, 4, 9, 16]
y2 = [1, 2, 3, 4]

# 绘制数据
plt.plot(x, y1, label='y = x^2')
plt.plot(x, y2, label='y = x')

# 添加图例
plt.legend(
    loc='upper left',  # loc 图例的位置
    fontsize=12,  # 图例中文字的大小
    title='Legend Title',  # 图例的标题
    title_fontsize=14,  # 图例标题的字体大小
    frameon=True,  # 是否显示图例的边框,默认值: True
    framealpha=0.8,  # 图例边框的透明度
    facecolor='yellow', # 图例的背景颜色
    edgecolor='red',  # 图例边框的颜色
    shadow=True,  # 是否在图例周围添加阴影效果
    # 用于手动指定图例的位置。可以是两个值的元组(表示相对于图表左下角的(x, y)位置),
    # 或四个值的元组(表示一个矩形框的左下角和右上角的(x, y)位置)
    bbox_to_anchor=(0.03,0.9),
    ncol=2,  # 图例中列的数目
    handletextpad=0.2,  # 图例标记与文字之间的间距(相对于字体大小) 一般不需要调整
    labelspacing=0.5,  # 图例中各标签之间的垂直间距(相对于字体大小) 一般不需要调整
)

# 显示图表
plt.show()
  1. loc:

    • 类型: strint
    • 默认值: 'best'
    • 描述: 指定图例的位置。可以是字符串(如'upper right''lower left'等)或数字代码。'best'表示Matplotlib会自动选择最佳位置。可选参数表如下:
      在这里插入图片描述
  2. fontsize:

    • 类型: strfloat
    • 默认值: rcParams['legend.fontsize'](默认为medium
    • 描述: 图例中文字的大小。
  3. title:

    • 类型: str
    • 默认值: None
    • 描述: 图例的标题。
  4. title_fontsize:

    • 类型: strfloat
    • 默认值: rcParams['axes.titlesize'](默认值为large
    • 描述: 图例标题的字体大小。
  5. frameon:

    • 类型: bool
    • 默认值: True
    • 描述: 是否显示图例的边框。
  6. framealpha:

    • 类型: float
    • 默认值: 1.0
    • 描述: 图例边框的透明度。
  7. facecolor:

    • 类型: strrgbrgba
    • 默认值: 'inherit'(从axes.facecolor继承)
    • 描述: 图例的背景颜色。
  8. edgecolor:

    • 类型: strrgbrgba
    • 默认值: '0.8'(灰色)
    • 描述: 图例边框的颜色。
  9. shadow:

    • 类型: bool
    • 默认值: False
    • 描述: 是否在图例周围添加阴影效果。
  10. bbox_to_anchor:

    • 类型: (float, float)(float, float, float, float)
    • 默认值: (0., 1.02, 1., .102)(相对于图表的坐标)
    • 描述: 用于手动指定图例的位置。可以是两个值的元组(表示相对于图表左下角的(x, y)位置),或四个值的元组(表示一个矩形框的左下角和右上角的(x, y)位置)。
  11. ncol:

    • 类型: int
    • 默认值: 1
    • 描述: 图例中列的数目。如果大于1,图例将分成多列显示。
  12. numpoints:

    • 类型: int
    • 默认值: 1
    • 描述: 每个图例条目的标记点数。
  13. handletextpad:

    • 类型: float
    • 默认值: 0.2(相对于字体大小)
    • 描述: 图例标记与文字之间的间距。
  14. labelspacing:

    • 类型: float
    • 默认值: 0.5(相对于字体大小)
    • 描述: 图例中各标签之间的垂直间距。
  15. handlelength:

    • 类型: float
    • 默认值: 2.(点单位)
    • 描述: 图例标记的长度。
  16. handleheight:

    • 类型: floatNone
    • 默认值: None(与handlelength相同)
    • 描述: 图例标记的高度。如果为None,则与handlelength相同。
  17. borderpad:

    • 类型: float
    • 默认值: 0.3(相对于字体大小)
    • 描述: 图例边框与其内容之间的间距。
  18. columnspacing:

    • 类型: float
    • 默认值: 2.(点单位)
    • 描述: 图例中各列之间的间距。
  19. markerscale:

    • 类型: float
    • 默认值: 1.
    • 描述: 图例标记的缩放比例。
  20. prop:

    • 类型: dict
    • 默认值: None
    • 描述: 一个字典,用于指定图例中文字的字体属性,如familystyleweightsizecolor等。
  21. mode:

    • 类型: {"expand", None}
    • 默认值: None
    • 描述: 如果为"expand",则图例将扩展以填充bbox_to_anchor指定的区域。
  22. fancybox:

    • 类型: bool
    • 默认值: False
    • 描述: 是否使用圆角边框。
  23. shadow_offset:

    • 类型: (float, float)
    • 默认值: (0.4, -0.5)(点单位)
    • 描述: 阴影相对于图例的偏移量。
  24. borderaxespad:

    • 类型: float
    • 默认值: 0.5
    • 描述: 图例边框与坐标轴之间的间距(相对于坐标轴的大小)。
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐