导语
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:表示表格与绘图区域的对齐方式。
实操
一、导入模块
import matplotlib.pyplot as plt
import numpy as np
#设置中文
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%%') #autopct:控制扇形或楔形的数值显示的字符串
四、添加辅助元素
#添加图例
plt.legend(kinds, loc='upper right', bbox_to_anchor=[2.10, 0.75], ncol=4)
# loc:粗略调整图例在整个绘图区域上的位置
# bbox_to_anchor:精细调整图例在整个绘图区域上的位置
# ncol:设置图例的列数,这里设置了4列
#添加表格
colors = [['orange', 'orange', 'orange', 'orange','orange', 'orange', 'orange',
'orange']]
plt.table(cellText=[weight], cellLoc='center', colLabels=kinds,
rowLabels=['重量(g)'], loc='bottom', rowColours=['grey'],
cellColours=colors, bbox=[1.15, 0.25, 0.9, 0.25],
colColours['grey','grey','grey','grey','grey','grey','grey','grey'])
# bbox:精细调整表格的位置 (x: 0~1, y: 0~1, width:调整表格宽度, height:调整表格高度)
此处要注意的是,cellColours传入的是一个二维的列表,所以colors要加两个中括号,如果只有一个中括号,则会报以下错误:
五、展示图表
plt.show()
展示结果