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 urllib爬取百度云连接的实例代码
Jun 19 Python
python快速建立超简单的web服务器的实现方法
Feb 17 Python
python 3.7.0 安装配置方法图文教程
Aug 27 Python
Python实现TCP通信的示例代码
Sep 09 Python
Python实现串口通信(pyserial)过程解析
Sep 25 Python
Python利用全连接神经网络求解MNIST问题详解
Jan 14 Python
Python3操作MongoDB增册改查等方法详解
Feb 10 Python
Transpose 数组行列转置的限制方式
Feb 11 Python
python实现快递价格查询系统
Mar 03 Python
Python集成开发工具Pycharm的安装和使用详解
Mar 18 Python
Python实现冒泡排序算法的完整实例
Nov 04 Python
Python中else的三种使用场景
Jun 16 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中printf()函数格式化使用
2016/05/23 PHP
PHP插件PHPMailer发送邮件功能
2017/02/28 PHP
javascript 数组排序函数
2009/08/20 Javascript
页面调用单个swf文件,嵌套出多个方法。
2011/11/21 Javascript
1秒50万字!js实现关键词匹配
2016/08/01 Javascript
jquery 正整数数字校验正则表达式
2017/01/10 Javascript
JavaScript中三种常见的排序方法
2017/02/24 Javascript
Vue2.0 http请求以及loading展示实例
2018/03/06 Javascript
angular的输入和输出的使用方法
2018/09/22 Javascript
Vue.js递归组件实现组织架构树和选人功能
2019/07/04 Javascript
[02:57]DOTA2英雄基础教程 风行者
2014/01/16 DOTA
python刷投票的脚本实现代码
2014/11/08 Python
python抓取百度首页的方法
2015/05/19 Python
python 根据pid杀死相应进程的方法
2017/01/16 Python
Python使用当前时间、随机数产生一个唯一数字的方法
2017/09/18 Python
python使用socket创建tcp服务器和客户端
2018/04/12 Python
替换python字典中的key值方法
2018/07/06 Python
python实现机器学习之多元线性回归
2018/09/06 Python
在Python 中实现图片加框和加字的方法
2019/01/26 Python
Python中模块(Module)和包(Package)的区别详解
2019/08/07 Python
Python3如何对urllib和urllib2进行重构
2019/11/25 Python
python 实现字符串下标的输出功能
2020/02/13 Python
django xadmin中form_layout添加字段显示方式
2020/03/30 Python
python进度条显示之tqmd模块
2020/08/22 Python
Python实现一个论文下载器的过程
2021/01/18 Python
你的自行车健身专家:FaFit24
2016/11/16 全球购物
天猫国际进口超市直营:官方直采,一站购齐
2017/12/11 全球购物
环境工程求职简历的自我评价范文
2013/10/24 职场文书
新闻系毕业生推荐信
2013/11/16 职场文书
教师个人事迹材料
2014/12/17 职场文书
匿名检举信范文
2015/03/02 职场文书
拯救大兵瑞恩观后感
2015/06/09 职场文书
工作收入证明模板
2015/06/12 职场文书
导游词之清晏园
2019/11/22 职场文书
Java中使用Filter过滤器的方法
2021/06/28 Java/Android
Mysql数据库事务的脏读幻读及不可重复读详解
2022/05/30 MySQL