# 添加表格
# 添加自定义样式的表格
# matplotlib 可以绘制各种各样的图表,以便用户发现数据间的规律。为了更加凸显数据间的规律与特点,便于用户从多元分析的角度深入挖掘数据潜在的含义,可将图表与数据表格结合使用,使用数据表格强调图表某部分的数值。matplotlib 中提供了为图表添加数据表格的函数 table() ,该函数的语法格式如下所示:
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)
# 该函数常用参数表示的含义如下。
# · cellText :表示表格单元格中的数据,是一个二维列表。
· cellColours :表示单元格的背景颜色。
· cellLoc :表示单元格文本的对齐方式,支持 'left'、'right' 和 'center' 三种取值,默认值为 'right'。
· colWidths :表示每列的宽度。
· rowLabels :表示行标题的文本。
· rowColours :表示行标题所在单元格的背景颜色。
· rowLoc :表示行标题的对齐方式。
· colLabels :表示列标题的文本。
· colColours :表示列标题所在单元格的背景颜色。
· colLoc :表示列标题的对齐方式。
· loc :表示表格与绘图区域的对齐方式。
# 此外,还可以使用 Axes 对象的 table() 方法为图表添加数据表格,此方法与 table() 函数的用法相似,此处不再赘述。
在 3.6.2 节绘制的正弦和余弦曲线图中添加数据表格,增加的代码如下。
# 添加表格
plt.table(cellText=[[6, 6, 6], [8, 8, 8]],
colWidths=[0.1] * 3,
rowLabels=['第1行', '第2行'],
colLabels=['第1列', '第2列', '第3列'], loc='lower right')
# 运行程序,效果如图 3-18 所示。
# 实例6:果酱面包配料比例
# 美好的一天从早餐开始,果酱面包是常见的早餐且深受大家喜爱,无论是大人还是小孩都很爱吃。已知某果酱面包需要准备的配料如表 3-4 所示。
# 根据表 3-4 的数据,将“配料名称”一列的数据作为图例项,将“重量”一列的数据与总重量的比例作为数据,使用 pie() 绘制果酱面包配料比例的饼图,并将各种配料的重量以数据表格的形式添加到图表中,方便用户了解各种配料的占比和重量,具体代码如下。
In [7]:
# 06_jam_bread_ingredients
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]
total__weight = 0
for i in weight:
total_weight += i
batching_scale = [i / total_weight for i in weight]
plt.pie(batching_scale, autopct='%3.1f%%')
plt.legend(kinds, loc='upper right', bbox_to_anchor=[1.1, 1.1])
# 添加表格
plt.table(cellText=[weight],
cellLoc='center',
rowLabels=['重量(g)'],
colLabels=kinds,
loc='lower center')
plt.show()