添加标题和图例
添加标题
图表的标题代表图表名称,一般位于图表的顶部且与图表居中对齐,可以迅速地让读者理解图表要说明的内容。matplotlib 中可以直接使用 pyplot 模块的 title() 函数添加图表标题, title() 函数的语法格式如下所示:
该函数常用参数的含义如下。
· label :表示标题的文本。
· fontdict :表示控制标题文本样式的字典。
· loc :表示标题的对齐样式,包括 'left'、'right' 和 'center' 三种取值,默认取值为 'center',即居中显示标题。
· pad :表示标题与图表顶部的距离,默认为 None。
此外,Axes 对象还可以使用 set_title() 方法添加图表的标题。
在 3.2.2 节绘制的正弦和余弦曲线图中添加标题“正弦曲线和余弦曲线”,增加的代码如下。
运行程序,效果如图 3-6 所示
添加图例
图例是一个列举各组图形数据标识方式的方框图,它由图例标识和图例项两个部分构成,其中图例标识是代表各组图形的图案;图例项是与图例标识对应的名称(说明文本)。当 matplotlib 绘制包含多组图形的图表时,可以在图表中添加图例,帮助用户明确每组图形代表的含义。
matplotlib 中可以直接使用 pyplot 模块的 legend() 函数添加图例,legend() 函数的语法格式如下所示 :
该函数常用参数的介绍如下。
handles 和 labels 参数
handles 参数表示由图形标识构成的列表,labels 参数表示由图例项构成的列表。需要注意的是,handles 和 labels 参数应接收相同长度的列表,若接收的列表长度不同,则会对较长的列表进行截断处理,使较长列表与较短列表长度相等。
loc 参数
loc 参数用于控制图例在图表中的位置,该参数支持字符串和数值两种形式的取值,每种取值及其对应的图例位置的说明如表 3-2 所示。
bbox_to_anchor 参数
bbox_to_anchor 参数用于控制图例的布局,该参数接收一个包含两个数值的元组,其中第一个数值用于控制图例显示的水平位置,值越大则说明图例显示的位置越偏右;第二个数值用于控制图例的垂直位置,值越大则说明图例显示的位置越偏上。
ncol 参数
ncol 参数表示图例的列数,默认值为 1。
title 参数
title 参数表示图例的标题,默认值为 None。
shadow 参数
shadow 参数控制是否在图例后面显示阴影,默认值为 None。
fancybox 参数
fancybox 参数控制是否为图例设置圆角边框,默认值为 None。
若使用 pyplot 绘图函数绘图时已经预先通过 label 参数指定了显示于图例的标签,则后续可以直接调用 legend() 函数添加图例;若未预先指定应用于图例的标签,则后续在调用 legend() 函数时为参数 handles 和 labels 传值即可,示例代码如下。
在 3.3.1 节绘制的正弦和余弦曲线图中添加图例,增加的代码如下。
运行程序,效果如图 3-7 所示。
实例2:支付宝月账单报告(添加标题、图例)
图例常见于饼图中,主要用于标注饼图中每个扇形代表的含义。2.6.2 节的用户 A 某月支付宝账单报告的饼图将每个扇形的含义标注到圆外,由于标注的文字长短不一且扇形数量偏多,导致图表显得比较杂乱,因此将饼图中全部的标注文字移到图例中,具体代码如下。
运行程序,效果如图 3-8 所示。
图 3-8 中,标题位于图表顶部且与图表居中对齐,图例位于图表的右上方。与图 2-17 相比,图 3-8 增加了标题和图例,有助于用户明确饼图及其每个颜色的扇形的含义。