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实现带验证码网站的自动登陆实现代码
Jan 12 Python
深入了解Python数据类型之列表
Jun 24 Python
Python使用迭代器打印螺旋矩阵的思路及代码示例
Jul 02 Python
python使用正则表达式替换匹配成功的组
Nov 17 Python
pycharm远程调试openstack的图文教程
Nov 21 Python
django_orm查询性能优化方法
Aug 20 Python
对numpy下的轴交换transpose和swapaxes的示例解读
Jun 26 Python
Python3中的最大整数和最大浮点数实例
Jul 09 Python
Python大数据之使用lxml库解析html网页文件示例
Nov 16 Python
Python面向对象原理与基础语法详解
Jan 02 Python
python能做哪些生活有趣的事情
Sep 09 Python
详解Python中Pyyaml模块的使用
Oct 08 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系统类函数
2015/10/21 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
2016/03/07 PHP
PHP中Socket连接及读写数据超时问题分析
2016/07/19 PHP
Ajax和PHP正则表达式验证表单及验证码
2016/09/24 PHP
关于laravel 数据库迁移中integer类型是无法指定长度的问题
2019/10/09 PHP
javascript YUI 读码日记之 YAHOO.util.Dom - Part.4
2008/03/22 Javascript
jquery 年会抽奖程序
2011/12/22 Javascript
用javascript替换URL中的参数值示例代码
2014/01/27 Javascript
js中的cookie的读写操作示例详解
2014/04/17 Javascript
jQuery中mouseover事件用法实例
2014/12/26 Javascript
javascript实现的网站访问量统计代码
2015/12/20 Javascript
jQuery的框架介绍
2016/05/11 Javascript
AngularJS基础 ng-paste 指令简单示例
2016/08/02 Javascript
详解堆的javascript实现方法
2016/11/29 Javascript
老生常谈angularjs中的$state.go
2017/04/24 Javascript
webpack配置文件和常用配置项介绍
2017/04/28 Javascript
angularJs中跳转到指定的锚点实例($anchorScroll)
2018/08/31 Javascript
jquery实现商品sku多属性选择功能(商品详情页)
2019/12/20 jQuery
vue 授权获取微信openId操作
2020/11/13 Javascript
[02:22:36]《加油!DOTA》总决赛
2014/09/19 DOTA
[58:32]EG vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python 列表list使用介绍
2014/11/30 Python
使用Python神器对付12306变态验证码
2016/01/05 Python
Python中的条件判断语句与循环语句用法小结
2016/03/21 Python
python 在屏幕上逐字显示一行字的实例
2018/12/24 Python
pytorch 在sequential中使用view来reshape的例子
2019/08/20 Python
python随机数分布random均匀分布实例
2019/11/27 Python
Django Form and ModelForm的区别与使用
2019/12/06 Python
使用pyqt 实现重复打开多个相同界面
2019/12/13 Python
Python开发之pip安装及使用方法详解
2020/02/21 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
加拿大休闲和工业服装和鞋类零售商:L’Équipeur
2018/01/12 全球购物
医生实习工作总结的自我评价
2013/09/27 职场文书
房屋租赁合同协议书范本
2014/10/19 职场文书
与死神共舞观后感
2015/06/15 职场文书
使用nginx配置访问wgcloud的方法
2021/06/26 Servers