图例往往位于图形的一角或一侧,用于对所绘制的图形中使用的各种符号和颜色进行说明,对于理解图形有重要的作用。
扩展库matplotlib.pyplot的函数legend()用于设置当前子图的图例样式和在当前子图中显示图例(要求绘制的曲线、散点、柱等图形已设置label属性),如果有多个子图的话可以使用gca()函数首先选择子图,或者使用子图对象直接调用legend()函数。该函数语法如下,常用参数见下表。
legend(*args, **kwargs)
表 legend()函数常用参数与含义
参数名称 | 含义 |
---|---|
loc | 用来说明图例的位置,可以为整数、字符串或实数对,可用的字符串值有'best'、'upper right'、'upper left'、'lower left'、'lower right'、'right'、'center left'、'center right'、'lower center'、'upper center'、'center',这些字符串依次等价于0到10之间的整数,例如设置loc='center'等价于loc=10。该参数的值也可以是包含2个实数的元组,例如(0.8, 0.3)表示图例的左下角在子图中的位置 |
bbox_to_anchor | 用来指定图例在bbox_transform坐标系中的位置,通常为包含2个实数的元组,常与loc参数的字符串值组合使用。例如,如果设置loc='upper right'和bbox_to_anchor=(0.5, 0.5)表示图例的右上角位于子图的中间位置 |
ncol | 用来表示图例分几栏显示的整数,默认为1 |
prop | 用来指定图例中的文本使用的字体 |
fontsize | 用来指定图例中的文本使用的字号,可以是表示绝对大小的整数、实数或表示相对大小的字符串'xx-small'、'x-small'、'small'、'medium'、'large'、'x-large'、'xx-large' |
numpoints | 用来指定折线图的图例中显示几个标记符号的整数 |
scatterpoints | 用来指定散点图的图例中显示几个标记符号的整数 |
markerscale | 用来指定图例中标记符号与图形中原始标记符号大小的相对比例 |
markerfirst | 用来指定是否图例符号在图例文本前面的布尔值,等于True时表示图例符号在前,等于False时表示图例文本在前 |
fancybox | 用来指定图例是否使用圆角矩形边缘的布尔值 |
shadow | 用来指定图例是否显示阴影的布尔值 |
framealpha | 用来指定图例背景透明度的实数 |
facecolor | 用来指定图例的背景颜色 |
edgecolor | 用来指定图例的边框颜色 |
mode | 如果设置为"expand",则图例在水平方向上会进行扩展至与子图宽度相同 |
title | 用来指定图例标题的字符串 |
borderpad | 用来指定图例边框内空白区域大小的实数 |
labelspacing | 用来指定图例中每个条目之间垂直距离的实数 |
columnspacing | 用来指定图例的多栏之间横向距离的实数 |
例1 绘制正线余弦图像,然后设置图例字体、标题、位置、阴影、背景色、边框颜色、分栏、符号位置等属性。
运行效果:
例2 生成模拟数据,创建两个子图,分别绘制正弦曲线和余弦曲线,把两个子图的图例显示在一起,并显示于子图之外。
运行效果:
例3 生成模拟数据,绘制正弦曲线、余弦曲线和两个散点图,然后分别为曲线和散点图设置图例,在一个图形上显示两个图例。
运行效果: