matplotlib之pyplot模块实现添加子图subplot的使用


Posted in Python onApril 25, 2021

概述

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

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

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

函数的调用签名为:

  • subplot(nrows, ncols, index, **kwargs)
  • subplot(pos, **kwargs)
  • subplot(**kwargs)
  • subplot(ax)

函数的参数为:

*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的其他子类。

案例:规则布局

import matplotlib.pyplot as plt

# 添加3行3列子图中的第1个子图,并将其为当前子图
plt.subplot(331)
plt.bar(range(1,4),range(1,4))
# 添加3行3列子图中的第5个子图,并将其为当前子图
plt.subplot(335)
plt.pie([4,5,6])
# 添加3行3列子图中的第9个子图,并将其为当前子图
# 返回值为Axes对象
ax=plt.subplot(339)
# 使用Axes的方法(面向对象模式)绘制点
ax.plot([1],'o')

plt.show()

matplotlib之pyplot模块实现添加子图subplot的使用

pyplot.plot()源码如下,通过源码可知pyplot模块的函数底层调用的是Axes对象的对应方法。

def plot(*args, scalex=True, scaley=True, data=None, **kwargs):
    return gca().plot(
        *args, scalex=scalex, scaley=scaley,
        **({"data": data} if data is not None else {}), **kwargs)

不规则布局

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

matplotlib之pyplot模块实现添加子图subplot的使用

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

matplotlib之pyplot模块实现添加子图subplot的使用

import matplotlib.pyplot as plt

# 绘制3行2列子图中的第1个子图
plt.subplot(321,facecolor='r')
# 绘制3行2列子图中的第2个子图
plt.subplot(322,facecolor='r')
# 绘制3行2列子图中的第3个子图
plt.subplot(323,facecolor='r')
# 绘制3行2列子图中的第4个子图
plt.subplot(324,facecolor='r')
# # 绘制3行1列子图中的第3个子图
plt.subplot(313,facecolor='b')

plt.show()

subplot()函数有一个非常重要的特性:
在创建新的子图时,如果新建子图与原有的子图存在重叠的情况,那么会删除原有重叠的子图。
例如:

import matplotlib.pyplot as plt
# 绘图时隐含创建subplot(111)
plt.plot([1, 2, 3])
# 创建一个新的子图,由于与原子图重叠,因此删除原有子图
plt.subplot(211)
plt.show()

到此这篇关于matplotlib之pyplot模块实现添加子图subplot的使用的文章就介绍到这了,更多相关matplotlib 添加子图内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python+mysql实现简单的web程序
Sep 11 Python
Python多进程multiprocessing.Pool类详解
Apr 27 Python
Python matplotlib通过plt.scatter画空心圆标记出特定的点方法
Dec 13 Python
PyQt5实现五子棋游戏(人机对弈)
Mar 24 Python
对python判断是否回文数的实例详解
Feb 08 Python
python之pexpect实现自动交互的例子
Jul 25 Python
Python自动化完成tb喵币任务的操作方法
Oct 30 Python
Django实现基于类的分页功能
Oct 31 Python
Python动态声明变量赋值代码实例
Dec 30 Python
如何查看Django ORM执行的SQL语句的实现
Apr 20 Python
Pytorch损失函数nn.NLLLoss2d()用法说明
Jul 07 Python
Pytorch 统计模型参数量的操作 param.numel()
May 13 Python
python实现简单区块链结构
python实现图片九宫格分割的示例
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
Apr 25 #Python
浅谈Python项目的服务器部署
Apr 25 #Python
Python Socket编程详解
Apr 25 #Python
Python Django 后台管理之后台模型属性详解
如何用python反转图片,视频
You might like
php中一个有意思的日期逻辑处理
2012/03/25 PHP
PHP快速排序quicksort实例详解
2016/09/28 PHP
PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
2016/11/25 PHP
Jquery 模拟用户点击超链接或者按钮的方法
2013/10/25 Javascript
js post提交调用方法
2014/02/12 Javascript
jQuery实现跟随鼠标运动图层效果的方法
2015/02/02 Javascript
JavaScript中模拟实现jsonp
2015/06/19 Javascript
JavaScript实现将文本框的值插入指定位置的方法
2015/08/13 Javascript
jquery 遍历数组 each 方法详解
2016/05/25 Javascript
jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
2016/10/30 Javascript
网络传输协议(http协议)
2016/11/18 Javascript
VUE v-model表单数据双向绑定完整示例
2019/01/21 Javascript
koa2 用户注册、登录校验与加盐加密的实现方法
2019/07/22 Javascript
Vue实现回到顶部和底部动画效果
2019/07/31 Javascript
详解使用JWT实现单点登录(完全跨域方案)
2019/08/02 Javascript
教你如何用Node实现API的转发(某音乐)
2019/09/20 Javascript
react项目从新建到部署的实现示例
2021/02/19 Javascript
python调用机器喇叭发出蜂鸣声(Beep)的方法
2015/03/23 Python
TensorFlow 合并/连接数组的方法
2018/07/27 Python
python基础教程之while循环
2019/08/14 Python
浅析PEP572: 海象运算符
2019/10/15 Python
对tensorflow中的strides参数使用详解
2020/01/04 Python
Python换行与不换行的输出实例
2020/02/19 Python
python 使用递归的方式实现语义图片分割功能
2020/07/16 Python
python statsmodel的使用
2020/12/21 Python
Tripadvisor新西兰:阅读评论,比较价格和酒店预订
2018/02/10 全球购物
CheapTickets香港机票预订网站:CheapTickets.hk
2019/06/26 全球购物
德国便宜的宠物店:Brekz.de
2020/10/23 全球购物
敬老月活动总结
2014/08/28 职场文书
副总经理岗位职责范本
2014/09/30 职场文书
自荐信模板大全
2015/03/27 职场文书
幼儿园开学家长寄语(2016春季)
2015/12/03 职场文书
2016反腐倡廉警示教育心得体会
2016/01/13 职场文书
2019年思想汇报
2019/06/20 职场文书
MYSQL 运算符总结
2021/11/11 MySQL
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
2022/12/24 MySQL