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 os模块中的isfile()和isdir()函数均返回false问题解决方法
Feb 04 Python
读写json中文ASCII乱码问题的解决方法
Nov 05 Python
Python内置函数OCT详解
Nov 09 Python
通过Python爬虫代理IP快速增加博客阅读量
Dec 14 Python
对python产生随机的二维数组实例详解
Dec 13 Python
Python3 关于pycharm自动导入包快捷设置的方法
Jan 16 Python
django页面跳转问题及注意事项
Jul 18 Python
python如何实现从视频中提取每秒图片
Oct 22 Python
如何基于pythonnet调用halcon脚本
Jan 20 Python
python如何将两张图片生成为全景图片
Mar 05 Python
Python包和模块的分发详细介绍
Jun 19 Python
python中Mako库实例用法
Dec 31 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实现图片等比例放大和缩小的方法详解
2013/06/06 PHP
HTTP头隐藏PHP版本号实现过程解析
2020/12/09 PHP
网页中的图片的处理方法与代码
2009/11/26 Javascript
疯狂Jquery第一天(Jquery学习笔记)
2012/05/11 Javascript
使用javascript过滤html的字符串(注释标记法)
2013/07/08 Javascript
JavaScript使用cookie实现记住账号密码功能
2015/04/27 Javascript
JavaScript中的anchor()方法使用详解
2015/06/08 Javascript
js利用正则表达式检验输入内容是否为网址
2016/07/05 Javascript
AngularJs基本特性解析(一)
2016/07/21 Javascript
jquery实现网站列表切换效果的2种方法
2016/08/12 Javascript
JavaScript原生实现观察者模式的示例
2017/12/15 Javascript
Vue的watch和computed方法的使用及区别介绍
2018/09/06 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
2019/05/28 Javascript
vue实现百度语音合成的实例讲解
2019/10/14 Javascript
原生js实现瀑布流效果
2020/03/09 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
2020/09/21 Javascript
vue项目中openlayers绘制行政区划
2020/12/24 Vue.js
原生js实现自定义难度的扫雷游戏
2021/01/22 Javascript
Python的函数的一些高阶特性
2015/04/27 Python
详解Python的Django框架中的templates设置
2015/05/11 Python
对Python多线程读写文件加锁的实例详解
2019/01/14 Python
Python 3.8 新功能来一波(大部分人都不知道)
2020/03/11 Python
django ORM之values和annotate使用详解
2020/05/19 Python
在django admin中配置搜索域是一个外键时的处理方法
2020/05/20 Python
Python join()函数原理及使用方法
2020/11/14 Python
澳大利亚领先的优质葡萄酒拍卖会:Langton’s Fine Wines
2019/03/24 全球购物
Subside Sports德国:足球球衣和球迷商品
2019/06/08 全球购物
Java中compareTo和compare的区别
2016/04/12 面试题
优秀党支部事迹材料
2014/01/14 职场文书
银行贷款承诺书
2014/03/29 职场文书
大学开学计划书
2014/04/30 职场文书
运动会的口号
2014/06/09 职场文书
村主任“四风”问题个人整改措施
2014/10/04 职场文书
无锡灵山大佛导游词
2015/02/09 职场文书
2016年毕业实习心得体会范文
2015/10/09 职场文书
python 算法题——快乐数的多种解法
2021/05/27 Python