任务要求: 需求一: 图例用4列展示
需求二: 表格填充你喜欢的任意颜色
需求三: 调整图例和表格位置,如运行效果图所示
(不要求完全一致,但应做相似度8成以上)。
导入所需库
import matplotlib.pyplot as plt #导入matplotlib中的pyplot库,命名为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.5, 0.8],ncol=4)
参数解释:1.loc:表示表格与绘图区域的对齐方式
str 或一对浮点数 'upper left', 'upper right', 'lower left', 'lower right'
2.bbox_to_anchor :2元组或 4 元组的浮点数
3.ncols int,默认值:1 图例的列数。
添加表格(通过bbox精细调整表格位置和大小)
plt.table(cellText=[weight], cellLoc='center', rowLabels=['重量(g)'],
colLabels=kinds,loc='bottom',rowColours='r',
bbox=[1.25,0.35,1.5,0.25],
colColours=('#98F5FF','#98F5FF','#98F5FF','#98F5FF','#98F5FF','#98F5FF','#98F5FF','#98F5FF'),
cellColours=[['pink','pink','pink','pink','pink','pink','pink','pink']])
参数解释:cellText:表示表格单元格中的数据,是一个二维列表
cellLoc:表示单元格文本的对齐方式,支持‘left’、'right'、'center'、三种默认的是,默认值为'right'
rowLabels: 表示行标题的文本
colLabels:表示列标题的文本
bbox:表示注释文本的边框属性字典
rowColours:表示行标题所在单元格的背景颜色
colColours:表示列标题所在单元格的背景颜色
cellColours:表示单元格的背景颜色
展示图表
plt.show()
完整代码如下: