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的Django框架中显示对象子集的方法
Jul 21 Python
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
Jan 20 Python
Python的collections模块中namedtuple结构使用示例
Jul 07 Python
django实现用户登陆功能详解
Dec 11 Python
Python 利用内置set函数对字符串和列表进行去重的方法
Jun 29 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
Feb 13 Python
详解Django+uwsgi+Nginx上线最佳实战
Mar 14 Python
python3+PyQt5 实现Rich文本的行编辑方法
Jun 17 Python
python实现猜数游戏
Mar 27 Python
python和php哪个容易学
Jun 19 Python
Python字符串对齐、删除字符串不需要的内容以及格式化打印字符
Jan 23 Python
Pyqt5将多个类组合在一个界面显示的完整示例
Sep 04 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
Win9x/ME下Apache+PHP安装配置
2006/10/09 PHP
php 在文件指定行插入数据的代码
2010/05/08 PHP
PHP生成随机字符串(3种方法)
2015/09/25 PHP
thinkPHP简单遍历数组方法分析
2016/05/16 PHP
php操作access数据库的方法详解
2017/02/22 PHP
PHP编程中的Session阻塞问题与解决方法分析
2017/08/07 PHP
PHP生成图表pChart的示例解析
2020/07/31 PHP
通过jquery的$.getJSON做一个跨域ajax请求试验
2011/05/03 Javascript
jquery 查找iframe父级页面元素的实现代码
2011/08/28 Javascript
js+JQuery返回顶部功能如何实现
2012/12/03 Javascript
Javascript计算两个marker之间的距离(Google Map V3)
2013/04/26 Javascript
jQuery动画效果相关方法实例分析
2015/12/31 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
2016/05/17 Javascript
WEB 前端开发中防治重复提交的实现方法
2016/10/26 Javascript
通过示例彻底搞懂js闭包
2017/08/10 Javascript
浅谈Angular4中常用管道
2017/09/27 Javascript
微信小程序数据统计和错误统计的实现方法
2019/06/26 Javascript
javascript实现移动端触屏拖拽功能
2020/07/29 Javascript
electron踩坑之dialog中的callback解决
2020/10/06 Javascript
Python使用asyncio包处理并发详解
2017/09/09 Python
浅析python3字符串格式化format()函数的简单用法
2018/12/07 Python
PyTorch的深度学习入门之PyTorch安装和配置
2019/06/27 Python
Python有参函数使用代码实例
2020/01/06 Python
python模式 工厂模式原理及实例详解
2020/02/11 Python
基于Python爬取素材网站音频文件
2020/10/21 Python
美国指甲油品牌:Deco Miami
2017/01/30 全球购物
某科技软件测试面试题
2013/05/19 面试题
标准毕业生自荐信范文
2013/11/04 职场文书
酒店值班经理的工作职责范本
2014/02/18 职场文书
人事专员的职责
2014/02/26 职场文书
汽车维修专业自荐书
2014/05/26 职场文书
考试作弊检讨
2015/01/27 职场文书
小学生优秀作文范文(六篇)
2019/07/10 职场文书
教你使用Python pypinyin库实现汉字转拼音
2021/05/27 Python
使用GO语言实现Mysql数据库CURD的简单示例
2021/08/07 Golang
JavaScript文档对象模型DOM
2021/11/20 Javascript