配置图例

阅读: 4373     评论:1

legend图例方法有很多可以配置的参数和选项:

参数 说明
loc 图例的位置
prop 字体参数
fontsize 字体大小
markerscale 图例标记与原始标记的相对大小
markerfirst 如果为True,则图例标记位于图例标签的左侧
numpoints 为线条图图例条目创建的标记点数
scatterpoints 为散点图图例条目创建的标记点数
scatteryoffsets 为散点图图例条目创建的标记的垂直偏移量
frameon 是否显示图例边框
fancybox 边框四个角是否有弧度
shadow 控制是否在图例后面画一个阴影
framealpha 图例边框的透明度
edgecolor 边框颜色
facecolor 背景色
ncol 设置图例分为n列展示
borderpad 图例边框的内边距
labelspacing 图例条目之间的垂直间距
handlelength 图例句柄的长度
handleheight 图例句柄的高度
handletextpad 图例句柄和文本之间的间距
borderaxespad 轴与图例边框之间的距离
columnspacing 列间距
title 图例的标题

对于loc这个图例在坐标轴中的放置位置,有两种表示方法:数字或者字符串,其对应关系如下:

  • 0: ‘best' : 自动选择最适合的位置
  • 1: ‘upper right': 右上
  • 2: ‘upper left': 左上
  • 3: ‘lower left': 左下
  • 4: ‘lower right':右下
  • 5: ‘right':右
  • 6: ‘center left':左中
  • 7: ‘center right':右中
  • 8: ‘lower center':下中
  • 9: ‘upper center': 上中
  • 10: ‘center':中间

设置字体大小的参数fontsize可以使用整数或者浮点数,以及字符串‘xx-small’、 ‘x-small’、 ‘small’、‘medium’、 ‘large’、 ‘x-large’和‘xx-large’。

下面是一些使用的例子

plt.legend(loc='best',frameon=False) #去掉图例边框
plt.legend(loc='best',edgecolor='blue') #设置图例边框颜色
plt.legend(loc='best',facecolor='blue') #设置图例背景颜色,若无边框,参数无效
plt.legend(loc='best',title='figure') #去掉图例边框
plt.legend(loc='upper left', ncol=2, frameon=False) # 分两列显示,在左上角
plt.legend(fancybox=True,framealpha=1, shadow=True, borderpad=1)

默认情况下,图例会忽略那些不带标签的绘图,只为设置了label参数的绘图添加图例。

有时候我们可能需要在同一张图上显示多个图例。不过,用普通方法解决不了这个问题,标准的legend接口只能为一张图创建一个图例。但是我们可以通过plt.gca().add_artist()方法(或者ax.add_artist()),将我们先前创建过的图例用底层的接口重新添加上去。

lines = []
styles= ['-', '--','-.',':']
x = np.linspace(0,10,1000)

for i in range(4): # 制造四条sin曲线
    lines += plt.plot(x, np.sin(x-i*np.pi/2), styles[i])
plt.axis('equal')

# 生成第一个图例,并保存引用
leg = plt.legend(lines[:2], ['line A', 'line B'], loc=1,frameon=False)

# 生成第二个图例,这会让第一个图例被抹去
plt.legend(lines[2:], ['line C', 'line D'], loc=4,frameon=False)

# gca方法获取当前坐标轴,再使用它的`add_artist`方法将第一个图例重新画上去
plt.gca().add_artist(leg)

img


 配置图题 颜色条 

评论总数: 1


点击登录后方可评论

plt.gca()和plt.axes()返回的是同一类型的实例,只不过用后者会抛出警告