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:表示表格与绘图区域的对齐方式。

实例:果酱面包配料比例

 需求:
需求一: 图例用4列展示
需求二: 表格填充你喜欢的任意颜色
需求三: 调整图例和表格位置,如运行效果图所示(不要求完全一致,但应做到相似度8成以上)。

代码如下:

# 导入模块:
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.2, 0.9],   #精细调整图例在整张画布的位置
           ncol=4)     #将图例分成4列

# 添加表格(通过bbox精细调整表格位置和大小)
plt.table(cellText=[weight],   #设置表格单元格中的数据
          cellLoc='center',  # 设置单元格中文本的对齐方式在中间
          rowLabels=['重量(g)'],   #设置行标题
          colLabels=kinds,    #设置列表题
          loc='bottom',   #设置表格与绘图区域的对齐方式
          bbox=[1.25,0.35,0.9,0.25],    #精细调整图例在整张画布的位置
          colColours=('#E377C2','#E377C2','#E377C2','#E377C2','#E377C2','#E377C2','#E377C2','#E377C2'),  #设置列标题所在单元格的背景颜色
          cellColours=[['#FFC0CB','#FFC0CB','#FFC0CB','#FFC0CB','#FFC0CB','#FFC0CB','#FFC0CB','#FFC0CB']], #设置单元格的背景颜色
          rowColours=['#9467BD'])   #设置行标题所在单元格的背景颜色
		  
# 展示图表
plt.show()

运行代码,效果如图所示:

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值