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使用redis pool的一种单例实现方式
Apr 16 Python
python读取二进制mnist实例详解
May 31 Python
python pygame实现五子棋小游戏
Oct 26 Python
python编写简单端口扫描器
Sep 04 Python
利用python计算时间差(返回天数)
Sep 07 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
Oct 24 Python
妙用itchat! python实现久坐提醒功能
Nov 25 Python
Python join()函数原理及使用方法
Nov 14 Python
使用gunicorn部署django项目的问题
Dec 30 Python
利用python做表格数据处理
Apr 13 Python
Opencv中cv2.floodFill算法的使用
Jun 18 Python
python和anaconda的区别
May 06 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模块 Memcached功能多于Memcache
2011/06/14 PHP
浅谈apache和nginx的rewrite的区别
2013/02/22 PHP
Yii使用技巧大汇总
2015/12/29 PHP
JavaScript修改css样式style
2008/04/15 Javascript
jquery JSON的解析方式
2009/07/25 Javascript
解决bootstrap中modal遇到Esc键无法关闭页面
2015/03/09 Javascript
详解js实现线段交点的三种算法
2016/08/09 Javascript
seajs学习教程之基础篇
2016/10/20 Javascript
Bootstrap CSS组件之分页(pagination)和翻页(pager)
2016/12/17 Javascript
zTree实现节点修改的实时刷新功能
2017/03/20 Javascript
Vue之Watcher源码解析(2)
2017/07/19 Javascript
bootstrap datepicker插件默认英文修改为中文
2017/07/28 Javascript
thinkjs 文件上传功能实例代码
2017/11/08 Javascript
详解Vue项目部署遇到的问题及解决方案
2019/01/11 Javascript
JavaScript闭包相关知识解析
2019/10/19 Javascript
vue表单数据交互提交演示教程
2019/11/13 Javascript
js实现特别简单的钟表效果
2020/09/14 Javascript
Vue项目打包部署到apache服务器的方法步骤
2021/02/01 Vue.js
[00:55]深扒TI7聊天轮盘语音出处3
2017/05/11 DOTA
[03:06]2018年度CS GO最具人气解说-完美盛典
2018/12/16 DOTA
Python re模块介绍
2014/11/30 Python
详解JavaScript编程中的window与window.screen对象
2015/10/26 Python
Python单例模式实例详解
2017/03/01 Python
python3利用Dlib19.7实现人脸68个特征点标定
2018/02/26 Python
Python HTML解析器BeautifulSoup用法实例详解【爬虫解析器】
2019/04/05 Python
Python3实现zip分卷压缩过程解析
2019/10/09 Python
新手学python应该下哪个版本
2020/06/11 Python
快速解释如何使用pandas的inplace参数的使用
2020/07/23 Python
美国在线家装零售商:Build.com
2016/09/02 全球购物
Kappa英国官方在线商店:服装和运动器材
2020/11/22 全球购物
岗位工作说明书
2014/07/29 职场文书
个人自查自纠材料
2014/10/14 职场文书
2014会计年终工作总结
2014/12/20 职场文书
2015年党员个人工作总结
2015/05/13 职场文书
2016优秀员工先进事迹材料
2016/02/25 职场文书
Redis实现主从复制方式(Master&Slave)
2022/06/21 Redis