导入模块并设置中文
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
创建代表画布的Figure类的对象fig
fig = plt.figure()
在画布fig上添加坐标系风格的绘图区域ax
ax = fig.add_subplot(111)
外侧说明文字
kinds = ['面粉', '全麦粉', '酵母', '苹果酱', '鸡蛋', '黄油', '盐', '白糖']
绘制饼图
weight = [250, 150, 4, 250, 50, 30, 4, 20]
ax.pie(weight, autopct='%3.1f%%')
添加图例(通过bbox_to_anchor精细调整图例位置),要注意:调整参数是绘图区域的比例,并非xy轴的刻度
ax.legend(kinds,
loc='upper right',
bbox_to_anchor=[2.1,0.8],# 用于精细调整图例在整个绘图区域上的位置:数值1越大越偏右,数值2越大越偏上
ncol=4) #表示图例的列数
添加表格(通过bbox精细调整表格位置和大小)
ax.table(cellText=[weight], #表示单元格中的数据,是一个二维列表
cellLoc='center', #单元格文本的对齐方式
rowLabels=['重量(g)'], #行标题的本文
colLabels=kinds,#列标题的文本
loc='right' , # 用于粗略调整图例在整个绘图区域上的位置
bbox=[1.15,0.35,0.9,0.25], #分别表示[xmin,ymin,width,height]
cellColours=[['#d5919f','#e39eac','#f1abb9','#ffb8c6',
'#ffc5d3','#ffd3e1','#ffe0ee','#ffe7ec']],#单元格的背景颜色,记住是二维列表哦
rowColours=['#bbe4fc'], #这是行标题所在单元格的背景颜色
colColours=['#ccedb8']*8)#这是列标题所在单元格的背景颜色,可以像上面那样一个一个设计,也可以这样统一设计
展示图表
plt.show()
运行结果如下: