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)
其中常用参数含义如下:
使用pyplot模块的table()函数添加表格
cellText : 表示表格单元格中的数据,是一个二维列表
cellLoc :表示单元格文本的对齐方式,支持'left'、'right'、'center' 三种取值,默认值为'right'
rowLabels : 表示行标题的文本
colLabels : 表示列标题的文本
loc:表示表格与绘图区域的对齐方式
loc的取值支持多种,如下:
'best' : 自适应
'upper right' : 右上方
'upper left' : 左上方
'lower left' :左下方
'lower right' : 右下方
'center left' :中心偏左
'center right' :中心偏右
'lower center' :中心偏下
'upper center' : 中心偏上
'center' : 居中
了解以上知识点后,进入实例:
-
# 需求一: 图例用4列展示
-
# 需求二: 表格填充你喜欢的任意颜色
-
# 需求三: 调整图例和表格位置,如运行效果图所示。
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.1, 0.7], ncol=4) # 添加表格(通过bbox精细调整表格位置和大小) colors = ['pink','pink','pink','pink','pink','pink','pink','pink'] plt.table(cellText=[weight], cellLoc='center', rowLabels=['重量(g)'], colLabels=kinds,loc='bottom' ,bbox=[1.2,0.3, 0.8, 0.2], cellColours=[colors], rowColours=['pink'], colColours=colors) plt.show()
结果如下: