python matplotlib legend()参数详解

在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:

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

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

  10. 类型: str
  11. 默认值: None
  12. 描述: 图例的标题。
  13. title_fontsize:

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

  18. 类型: bool
  19. 默认值: True
  20. 描述: 是否显示图例的边框。
  21. framealpha:

  22. 类型: float
  23. 默认值: 1.0
  24. 描述: 图例边框的透明度。
  25. facecolor:

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

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

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

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

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

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

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

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

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

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

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

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

  74. 类型: float
  75. 默认值: 1.
  76. 描述: 图例标记的缩放比例。
  77. prop:

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

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

  86. 类型: bool
  87. 默认值: False
  88. 描述: 是否使用圆角边框。
  89. shadow_offset:

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

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

作者:请一直在路上

物联沃分享整理
物联沃-IOTWORD物联网 » python matplotlib legend()参数详解

发表回复