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 相关文章推荐
windows系统中python使用rar命令压缩多个文件夹示例
May 06 Python
Python配置文件解析模块ConfigParser使用实例
Apr 13 Python
python中list列表的高级函数
May 17 Python
python 使用get_argument获取url query参数
Apr 28 Python
对pandas中to_dict的用法详解
Jun 05 Python
python中将zip压缩包转为gz.tar的方法
Oct 18 Python
Python WEB应用部署的实现方法
Jan 02 Python
Python开发网站目录扫描器的实现
Feb 21 Python
PyTorch搭建多项式回归模型(三)
May 22 Python
python yield和Generator函数用法详解
Feb 10 Python
python如何提升爬虫效率
Sep 27 Python
pytorch锁死在dataloader(训练时卡死)
May 28 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排序之二维数组的按照字母排序实现代码
2011/08/13 PHP
php替换字符串中间字符为省略号的方法
2015/05/04 PHP
php如何获取文件的扩展名
2015/10/28 PHP
php mongodb操作类 带几个简单的例子
2016/08/25 PHP
php中二分法查找算法实例分析
2016/09/22 PHP
PHP缓存工具XCache安装与使用方法详解
2018/04/09 PHP
Yii框架实现对数据库的CURD操作示例
2019/09/03 PHP
PHP文件操作简单介绍及函数汇总
2020/12/11 PHP
javascript中xml操作实现代码
2011/11/21 Javascript
点击表单提交时出现jQuery没有权限的解决方法
2014/07/23 Javascript
DOM基础教程之事件对象
2015/01/20 Javascript
JS简单实现多级Select联动菜单效果代码
2015/09/06 Javascript
浅谈jquery点击label触发2次的问题
2016/06/12 Javascript
Google 地图获取API Key详细教程
2016/08/06 Javascript
利用Vue.js指令实现全选功能
2016/09/08 Javascript
Bootstrap简单表单显示学习笔记
2016/11/15 Javascript
Angular自定义组件实现数据双向数据绑定的实例
2017/12/11 Javascript
详解plotly.js 绘图库入门使用教程
2018/02/23 Javascript
基于IView中on-change属性的使用详解
2018/03/15 Javascript
详解JavaScript中的数组合并方法和对象合并方法
2018/05/11 Javascript
d3绘制基本的柱形图的实现代码
2018/12/12 Javascript
vue + axios get下载文件功能
2019/09/25 Javascript
[02:49]2014DOTA2电竞也是体育项目! 势要把荣誉带回中国!
2014/07/20 DOTA
Python下的subprocess模块的入门指引
2015/04/16 Python
深入解析Python编程中JSON模块的使用
2015/10/15 Python
浅谈python中的getattr函数 hasattr函数
2016/06/14 Python
python字符串分割及字符串的一些常规方法
2019/07/24 Python
python实现超市商品销售管理系统
2019/10/25 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
2020/02/28 Python
英国折扣零售连锁店:QD Stores
2018/12/08 全球购物
偷看我的初中毕业鉴定
2014/01/29 职场文书
原告离婚代理词
2015/05/23 职场文书
初婚未育证明样本
2015/06/18 职场文书
宝宝满月祝酒词
2015/08/10 职场文书
小学体育教学随笔
2015/08/14 职场文书
mysql自增长id用完了该怎么办
2022/02/12 MySQL