Python Matplotlib绘图库:matplotlib之pyplot模块添加一个子图subplot(二)

1:Matplotlib绘图库概述

  1: subplot()函数向当前图像(figure)添加一个子图Axes),并将该子图设为当前子图。或者将某子图设为当前子图。

     2:  pyplot.subplot()其实是Figure.add_subplot()的一个封装

     3:  函数的定义签名为:matplotlib.pyplot.subplot(*args, **kwargs)

   函数的调用签名为:
   subplot(nrows, ncols, index, **kwargs)
   subplot(pos, **kwargs)
   subplot(**kwargs)
   subplot(ax)

4: 重点分析:通过subplot参数不同,来调整子图在整个画布中的不同位置

函数的参数为:

*args:定义子图的位置。int、 (int, int, index) 或 SubplotSpec, 默认值为(1, 1, 1)

*args由以下三种定义方式。

三个整数构成的三元组(nrows, ncols, index):首先构成一个nrows行和ncols列的网格,然后将子图添加到对应index索引位置。 index从1开始累计,1为左上角,依次向右递增. index也可以是是一个二元组,例如fig.add_subplot(3, 1, (1, 2))。
三位整数:每一位数字可以分解为单独的整数,因此,这种方法最好用于子图少于9个的情况(index最大只能为9)。比如plt.subplot(235)等价于plt.subplot(2, 3, 5)。
SubplotSpec对象:
函数的返回值为:axes.SubplotBase对象或 Axes的其他子类。

 

2:布局案例

2.1 :不规则布局

        1:通常子区函数subplot()用来完成等分画布的绘图展示的任务,如果在画布上需要进行非等分画布的图形展示时,我们可以多次调用函数subplot()来完成非等分画布的绘图准备任务。

       2:代码

import matplotlib.pyplot as plt

# 绘制1行2列子图中的第1个子图
plt.subplot(121,facecolor='r')
# 绘制2行2列子图中的第2个子图
plt.subplot(222,facecolor='g')
# 绘制2行2列子图中的第4个子图
plt.subplot(224,facecolor='b')

plt.show()

     

2.2 : 绘制bar图形 

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec

plt.rcParams["font.sans-serif"] = ["SimHei"]
x_month = np.array(['1月', '2月', '3月', '4月', '5月', '6月'])
y_sales = np.array([2150, 1050, 1560, 1480, 1530, 1490])

# 创建画布和布局 num:图形名称 figsize(5,5) 长宽就是5
fig = plt.figure(num=1, figsize=(5, 5))  
# 在画布上添加 :虚拟的gridspec网格规范 (3行3列)
gs = fig.add_gridspec(3, 3)
# 在画布上添加:子图 (子图位置第0行 和第1列 第2列 第3列交集)
ax_one = fig.add_subplot(gs[0, :])

# 第1个子图
ax_one.bar(x_month, y_sales, width=0.5, color='#3299CC')
ax_one.set_title('2022年上半年某品牌汽车的销售额(模拟数据)')
ax_one.set_ylabel('销售额(亿元)')

plt.show()

现在我们重点研究gs[args,args] 参数对于子图位置布局的控制

2.2.1:  ax_one = fig.add_subplot(gs[0, :]) 
     

2.2.2  

 ax_one = fig.add_subplot(gs[1:, :-2]) 

 ax_one = fig.add_subplot(gs[1:, :1]) 

ax_one = fig.add_subplot(gs[1:, 1:]) 

 2.2.3 

ax_one = fig.add_subplot(gs[:-1,:2])

ax_one = fig.add_subplot(gs[:2,:2])

3:参考文献

matplotlib之pyplot模块——添加一个子图(subplot)_mighty13的博客-CSDN博客_pyplot.subplot

matplotlib.pyplot的使用总结大全(入门加进阶) - 知乎

利用python进行数据分析—七、绘图与可视化—matplotlib与seaborn_哎呦-_-不错的博客-CSDN博客

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值