利用matplotlib库中面向对象API为图像调整图例和表格

导入模块并设置中文

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()

运行结果如下:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值