用matplotlib调整表格和图例的样式

我们可以通过调整对应参数来调整表格和图例的样式。

图例方面可以通过loc参数来调整图例位置,该参数的取值及其对应的图例位置如下:

同时bbox_to_anchor参数可以调整图例的布局,该参数接收一个包含两个数值的元组,其中第一个数值用于控制图例显示的水平位置,值越大则说明图例显示的位置越偏右;第二个数值用于控制图例的垂直位置,值越大则说明图例显示的位置越偏上。

除此之外还可以通过ncol参数调整图例列数,该参数默认值为1。

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

 实例:果酱面包配料比例

 绘图代码如下:

#导入模块
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=[1.1, 1.1])  
# 添加表格(通过bbox精细调整表格位置和大小)
plt.table(cellText=[weight], cellLoc='center', rowLabels=['重量(g)'], colLabels=kinds,loc='bottom' )
#展示图表		  
plt.show()

图表绘制结果如下:

 现需要实现以下需求:

  1. 图例用四例展示;
  2. 表格填充任意颜色;
  3. 调整图例和表格的位置。

需求一可以通过上面讲到的ncol参数来实现,只需要在legend函数中加入ncol=4即可实现;

需求二可以通过cellColours参数、rowColours参数和colColours参数实现;

需求三可以通过调整legend函数中的bbox_to_anchor参数以及table函数中的bbox参数实现。

具体代码如下:

 

#导入模块
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.0, 0.8],ncol=4)
#设置颜色
colour = ['pink','pink','pink','pink','pink','pink','pink','pink']
# 添加表格(通过bbox精细调整表格位置和大小)
plt.table(cellText=[weight], cellLoc='center', rowLabels=['重量(g)'],
          colLabels=kinds,loc='bottom',cellColours=[colour],
          rowColours=['pink'], colColours=colour,bbox=[1.1,0.3,0.8,0.3])
#展示图表
plt.show()

运行结果如下:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值