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中设置变量作为默认值时容易遇到的错误
Apr 03 Python
使用Python的urllib和urllib2模块制作爬虫的实例教程
Jan 20 Python
深入浅析python继承问题
May 29 Python
python批量替换页眉页脚实例代码
Jan 22 Python
Python实现的根据IP地址计算子网掩码位数功能示例
May 23 Python
ubuntu16.04制作vim和python3的开发环境
Sep 23 Python
python数据处理 根据颜色对图片进行分类的方法
Dec 08 Python
Python协程 yield与协程greenlet简单用法示例
Nov 22 Python
Django使用rest_framework写出API
May 21 Python
matplotlib subplot绘制多个子图的方法示例
Jul 28 Python
如何利用python正则表达式匹配版本信息
Dec 09 Python
Python OpenCV之常用滤波器使用详解
Apr 07 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
一个简单的自动发送邮件系统(三)
2006/10/09 PHP
解析PHP正则提取或替换img标记属性
2013/06/26 PHP
thinkphp中html:list标签传递多个参数实例
2014/10/30 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
Yii 框架使用数据库(databases)的方法示例
2020/05/19 PHP
Javascript 错误处理的几种方法
2009/06/13 Javascript
THREE.JS入门教程(1)THREE.JS使用前了解
2013/01/24 Javascript
Js日期选择器并自动加入到输入框中示例代码
2013/08/02 Javascript
JS仿iGoogle自定义首页模块拖拽特效的方法
2015/02/13 Javascript
JavaScript正则表达式中的ignoreCase属性使用详解
2015/06/16 Javascript
动态加载jQuery的两种方法实例分析
2015/07/17 Javascript
jQuery实现右下角可缩放大小的层完整实例
2016/06/20 Javascript
js图片放大镜效果实现方法详解
2020/10/28 Javascript
Javascript实现跨域后台设置拦截的方法详解
2017/08/04 Javascript
javascript实现获取一个日期段内每天不同的价格(计算入住总价格)
2018/02/05 Javascript
Layui组件Table绑定行点击事件和获取行数据的方法
2018/08/19 Javascript
详解如何在Vue项目中发送jsonp请求
2019/10/25 Javascript
[02:20]DOTA2亚洲邀请赛 EHOME战队出场宣传片
2015/02/07 DOTA
python cx_Oracle模块的安装和使用详细介绍
2017/02/13 Python
分析python切片原理和方法
2017/12/19 Python
Python获取二维矩阵每列最大值的方法
2018/04/03 Python
Django框架组成结构、基本概念与文件功能分析
2019/07/30 Python
python3 assert 断言的使用详解 (区别于python2)
2019/11/27 Python
python查看矩阵的行列号以及维数方式
2020/05/22 Python
Html5之webcoekt播放JPEG图片流
2020/09/22 HTML / CSS
迪拜航空官方网站:flydubai
2017/04/20 全球购物
英国独特礼物想法和个性化礼物网站:notonthehighstreet.com
2018/04/16 全球购物
微软中国官方商城:Microsoft Store中国
2018/10/12 全球购物
小区门卫工作职责
2013/12/14 职场文书
高中毕业自我鉴定
2013/12/16 职场文书
对党的十八届四中全会的期盼
2014/10/17 职场文书
关于办理居住证的介绍信模板
2019/11/27 职场文书
Python学习开发之图形用户界面详解
2021/08/23 Python
Python实现抖音热搜定时爬取功能
2022/03/16 Python
一起来看看Vue的核心原理剖析
2022/03/24 Vue.js
js面向对象编程OOP及函数式编程FP区别
2022/07/07 Javascript