概述:添加表格
matplotlib 主要用途是绘图,但是他还是可以在绘图时帮助我们做一些其他事务,比如在图表旁边放置一个整齐的数据表格。我们必须明白为数据绘制可视化图形主主要是是为了解释那些不能理解的数据。将一些来自数据整体集合的总结性或者突出强调的值放在图表旁边可以更好的帮助我们理解数据
在 matplotlib 中有一个专门的模块 matplotlib.table 用于管理和表格相关事情,在 matplotlib.table 文件有 Cell、Table 两个类以及包装方法 table(),Table 类是一个由单元格组成的表格,(0, 0)位于表格的左上角。在实际使用中都是调用 pyplot.talbe() API 快速创建 Table 实例,这个方法的底层调用链是 pyplot.table()
接下来介绍一下 matplotlib 的快速创建方法 pyploy.table()
# cellText:指定放入单元格的字符串
# cellColours:指定每个单元格的背景颜色
# cellLoc:指定单元格文本排版
# colWidths:指定列宽
# rowLabels:指定标题行文本
# rowColours:指定标题行颜色
# rowLoc:指定标题行排版
# cowLabels:指定标题列文本
# cowColours:指定标题列颜色
# cowLoc:指定标题列排版
# loc:指定表格相当于Axes对象的位置。
# bbox:指定表格的边界,可以是Bbox对象或者[xmin, ymin, width, height]
def table(
cellText=None, cellColours=None, cellLoc='right',
colWidths=None, rowLabels=None, rowColours=None,
rowLoc='left', colLabels=None, colColours=None,
colLoc='center', loc='bottom', bbox=None, edges='closed',
**kwargs):
...
示例实操
先导入所需的的模块
import matplotlib.pyplot as plt
设置中文
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
数据准备
kinds = ['面粉', '全麦粉', '酵母', '苹果酱', '鸡蛋', '黄油', '盐', '白糖']
weight = [250, 150, 4, 250, 50, 30, 4, 20]
绘制饼图
plt.pie(weight, autopct='%3.1f%%')
添加辅助元素
# 添加图例(通过bbox_to_anchor精细调整图例位置)
plt.legend(kinds, loc='upper right', bbox_to_anchor=[2.07, 0.7],ncol=4)
图例函数legend()关键字参数主要有位置参数loc、线框位置bbox_to_anchor、图例标签内容的标题参数title
线框阴影shadow和线框圆角处理参数fancybox等。对于位置参数loc不仅可以使用字符串还可以使用字符串对应的数字,可以使用的其他位置参数值和可以使用的对应位置数值如表所示。
loc:位置参数值
bbox_to_anchor:精细调整图例在整个绘图区域的位置
ncol:设置图例的列数,这里是四列
添加表格
# 添加表格(通过bbox精细调整表格位置和大小)
plt.table(cellText=[weight],
cellLoc='center',
colLabels=kinds,rowLabels=['重量(g)'],loc='bottom',
rowColours=['red'],
colColours=['pink','pink','pink','pink','pink','pink','pink','pink'],
cellColours=[['yellow','yellow','yellow','yellow','yellow','yellow','yellow','yellow']],
bbox=[1.15,0.25,0.9,0.25])
cellText:表示表格单元格中的数据,是一个二维列表
cellLoc:表示单元格文本的对齐方式,支持‘left’、'right'、'center'、三种默认的是,默认值为'right'
rowLabels: 表示行标题的文本
colLabels:表示列标题的文本
rowColours:表示行标题所在单元格的背景颜色
colColours:表示列标题所在单元格的背景颜色
cellColours:表示单元格的背景颜色
bbox:表示注释文本的边框属性字典 (x:0-1,y:0-1,width:表格宽度,height:表格高度)
展示图表
plt.show()