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中的数据类型
May 05 Python
TF-IDF算法解析与Python实现方法详解
Nov 16 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
Jan 05 Python
python,Django实现的淘宝客登录功能示例
Jun 12 Python
python适合人工智能的理由和优势
Jun 28 Python
pybind11在Windows下的使用教程
Jul 04 Python
python的pygal模块绘制反正切函数图像方法
Jul 16 Python
python requests指定出口ip的例子
Jul 25 Python
Django Form 实时从数据库中获取数据的操作方法
Jul 25 Python
Pytorch中.new()的作用详解
Feb 18 Python
Python3爬虫里关于代理的设置总结
Jul 30 Python
基于Python的图像阈值化分割(迭代法)
Nov 20 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
用mysql内存表来代替php session的类
2009/02/01 PHP
PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
2011/12/05 PHP
php中判断文件存在是用file_exists还是is_file的整理
2012/09/12 PHP
php递归使用示例(php递归函数)
2014/02/14 PHP
yii实现CheckBox复选框在同一行显示的方法
2014/12/03 PHP
如何通过Apache在本地配置多个虚拟主机
2020/07/29 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
发现的以前不知道的函数
2006/09/19 Javascript
尽可能写"友好"的"Javascript"代码
2007/01/09 Javascript
Javascript 类、命名空间、代码组织代码
2011/07/31 Javascript
(跨浏览器基础事件/浏览器检测/判断浏览器)经验代码分享
2013/01/24 Javascript
JavaScript获取客户端计算机硬件及系统等信息的方法
2014/01/02 Javascript
简介JavaScript中Boolean.toSource()方法的使用
2015/06/05 Javascript
纯JavaScript代码实现移动设备绘图解锁
2015/10/16 Javascript
js实现div在页面拖动效果
2016/05/04 Javascript
jquery遍历json对象集合详解
2016/05/18 Javascript
jQuery简单实现iframe的高度根据页面内容自适应的方法
2016/08/01 Javascript
JS中关于正则的巧妙操作
2017/08/31 Javascript
setTimeout时间设置为0详细解析
2018/03/13 Javascript
浅谈Vue路由快照实现思路及其问题
2018/06/07 Javascript
jQuery+ajax实现用户登录验证
2020/09/13 jQuery
gearman的安装启动及python API使用实例
2014/07/08 Python
详解Python3操作Mongodb简明易懂教程
2017/05/25 Python
解决tensorflow模型参数保存和加载的问题
2018/07/26 Python
python实现TCP文件传输
2020/03/20 Python
Python如何根据时间序列数据作图
2020/05/12 Python
Python 代码调试技巧示例代码
2020/08/11 Python
实列教程 一款基于jquery和css3的响应式二级导航菜单
2014/11/13 HTML / CSS
HTML5实时语音通话聊天MP3压缩传输3KB每秒
2019/08/28 HTML / CSS
毕业生的求职信范文分享
2013/12/04 职场文书
《跟踪台风的卫星》教学反思
2014/04/10 职场文书
三八红旗集体先进事迹材料
2014/05/22 职场文书
十佳家长事迹材料
2014/08/26 职场文书
活动新闻稿范文
2015/07/17 职场文书
MySQL表的增删改查(基础)
2021/04/05 MySQL
win11怎么消除图标小盾牌?win11消除图标小盾牌解决方法
2022/08/05 数码科技