matplotlib添加图例

说明

图例就是下图红框处:

官网文档

语法

matplotlib.pyplot.legend(loc,bbox_to_anchor,labels,)
参数说明:
  • loc :图例显示位置,默认显示右上角,值为upper left表示左上角,具体值参看下面

  • bbox_to_anchor:图例的微调位置

  • labels:图例文字

  • fontsize:设置字体大小,类型:int or {‘xx-small’, ‘x-small’, ‘small’, ‘medium’, ‘large’, ‘x-large’, ‘xx-large’}

  • labelcolor:标签文字颜色,类型:str or list

返回值:

返回图例对象,作用:通过该图例对象可以设置图例文字颜色

loc的值

  • ‘best’ (Axes only):0
  • ‘upper right’:1
  • ‘upper left’:2
  • ‘lower left’:3
  • ‘lower right’:4
  • ‘right’:5
  • ‘center left’:6
  • ‘center right’:7
  • ‘lower center’:8
  • ‘upper center’:9
  • ‘center’:10

例子:绘制两天气温变化图,并添加图例

import matplotlib.pyplot as plt

# 设置 微软雅黑 字体,解决中文乱码
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']

temps=[23,22,23,24,27,28,25,23]
hours=list(range(2,26,3))
temps2=[24,23,24,25,29,31,27,25]

# 绘制折线并添加图例
plt.plot(hours,temps,label='8月1日')
# 绘制折线并添加图例
plt.plot(hours,temps2,label='8月2日')
# 显示图例
plt.legend(loc='upper left')

# 显示
plt.show()

bbox_to_anchor:微调位置

参数 bbox_to_anchor: 表示在 loc 的基础上,再进行微调

值:

(x,y,width,height)

参数:

  • x:微调的x坐标
  • y:微调的y坐标
  • width:图例的宽度
  • height:图例的高度

x, y 与 loc 的值有关,如果 loc 是 upper left,那么:

  • 如果 x=0,y=0,表示原位置,即左上角
  • 如果 x=-0.1,表示原位置的基础上,再左移 0.1
  • 如果 x= 0.1,表示原位置的基础上,再右移 0.1
  • 如果 y=-0.1,表示原位置的基础上,再下移 0.1
  • 如果 y= 0.1,表示原位置的基础上,再上移 0.1

例子

plt.legend(loc='upper left',labels = labels, bbox_to_anchor=(-0.4, 0, 0.5, 1))

设置图例文字颜色

leg = plt.legend(loc='upper left',labels = labels)
# 获取图例中的文本对象
for text in leg.get_texts():
    text.set_color('w') # 设置图例文本的颜色

原文出处:/show_1EF3nOjya8fx.html