Python3 matplotlib的绘图函数subplot()简介

Python3 matplotlib的绘图函数subplot()简介

一、简介

matplotlib下, 一个 Figure 对象可以包含多个子图(Axes), 可以使用 subplot() 快速绘制, 其调用形式如下 :

subplot(numRows, numCols, plotNum)
  • 图表的整个绘图区域被分成 numRows 行和 numCols 列

  • 然后按照从左到右,从上到下的顺序对每个子区域进行编号,左上的子区域的编号为1

  • plotNum 参数指定创建的 Axes 对象所在的区域

如果 numRows = 2, numCols = 3, 那整个绘制图表样式为 2X3 的图片区域, 用坐标表示为:

(1, 1), (1, 2), (1, 3)
(2, 1), (2, 2), (2, 3)

这时, 当 plotNum = 3 时, 表示的坐标为(1, 3), 即第一行第三列的子图

  • 如果 numRowsnumCols 和 plotNum 这三个数都小于 10 的话, 可以把它们缩写为一个整数, 例如 subplot(323) 和 subplot(3,2,3) 是相同的.

  • subplot在 plotNum 指定的区域中创建一个轴对象. 如果新创建的轴和之前创建的轴重叠的话,之前的轴将被删除.

二、参数说明

1,subplots()参数

matplotlib.pyplot.subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw)

创建一个画像(figure)和一组子图(subplots)。
这个实用程序包装器可以方便地在单个调用中创建子图的公共布局,包括封闭的图形对象。

输入参数说明:
  nrows,ncols:整型,可选参数,默认为1。表示子图网格(grid)的行数与列数。
  sharex,sharey:布尔值或者{'none','all','row','col'},默认:False
       控制x(sharex)或y(sharey)轴之间的属性共享:
          1.True或者'all':x或y轴属性将在所有子图(subplots)中共享.
          2.False或'none':每个子图的x或y轴都是独立的部分
             3.'row':每个子图在一个x或y轴共享行(row)
                4.'col':每个子图在一个x或y轴共享列(column)
  当子图在x轴有一个共享列时('col'),只有底部子图的x tick标记是可视的。
  同理,当子图在y轴有一个共享行时('row'),只有第一列子图的y tick标记是可视的。
  squeeze:布尔类型,可选参数,默认:True。
                * 如果是True,额外的维度从返回的Axes(轴)对象中挤出。
                    》如果只有一个子图被构建(nrows=ncols=1),结果是单个Axes对象作为标量被返回。
                    》对于N*1或1*N个子图,返回一个1维数组。
                    》对于N*M,N>1和M>1返回一个2维数组。
                *如果是False,不进行挤压操作:返回一个元素为Axes实例的2维数组,即使它最终是1x1。
  subplot_kw:字典类型,可选参数。把字典的关键字传递给add_subplot()来创建每个子图。
  gridspec_kw字典类型,可选参数。把字典的关键字传递给GridSpec构造函数创建子图放在网格里(grid)。
  **fig_kw:把所有详细的关键字参数传给figure()函数

返回结果:
  fig:matplotlib.figure.Figure对象
  ax:Axes(轴)对象或Axes(轴)对象数组。

2,figure()参数

matplotlib.pyplot.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, FigureClass=<class 'matplotlib.figure.Figure'>, clear=False, **kwargs)

创建一个新的画布(figure)。
输入参数:
  num:整型或者字符串,可选参数,默认:None。
       如果不提供该参数,一个新的画布(figure)将被创建而且画布数量将会增加。
          如果提供该参数,带有id的画布是已经存在的,激活该画布并返回该画布的引用。
               如果这个画布不存在,创建并返回画布实例。
               如果num是字符串,窗口标题将被设置为该图的数字。
  figsize:整型元组,可选参数 ,默认:None。
              每英寸的宽度和高度。如果不提供,默认值是figure.figsize。
  dpi:整型,可选参数,默认:None。每英寸像素点。如果不提供,默认是figure.dpi。
  facecolor:背景色。如果不提供,默认值:figure.facecolor。
  edgecolor:边界颜色。如果不提供,默认值:figure.edgecolor。
  framemon:布尔类型,可选参数,默认值:True。如果是False,禁止绘制画图框。
  FigureClass:源于matplotlib.figure.Figure的类。(可选)使用自定义图实例。
  clear:布尔类型,可选参数,默认值:False。如果为True和figure已经存在时,这是清理掉改图。
返回值:
  figure:Figure。返回的Figure实例也将被传递给后端的new_figure_manager,这允许将自定义的图类挂接到pylab接口中。 

       附加的kwarg将被传递给图形init函数。

三、示例

1,规则划分成3*3

代码:

import matplotlib
import matplotlib.pyplot as pltif __name__ == '__main__':for i,color in enumerate("rgby"):plt.subplot(221+i, facecolor=color) #背景色设置facecolorplt.show()

效果:

2,不规则划分

不规则划分

将整个表按照 2*2 划分 
前两个简单, 分别是 (2, 2, 1) 和 (2, 2, 2)

但是第三个图呢, 他占用了 (2, 2, 3) 和 (2, 2, 4)

显示需要对其重新划分, 按照 2 * 1 划分

前两个图占用了 (2, 1, 1) 的位置

因此第三个图占用了 (2, 1, 2) 的位置

代码:

import matplotlib.pyplot as plt
import numpy as npdef f(t):return np.exp(-t) * np.cos(2 * np.pi * t)if __name__ == '__main__' :t1 = np.arange(0, 5, 0.1)t2 = np.arange(0, 5, 0.02)plt.figure(12)plt.subplot(221)plt.plot(t1, f(t1), 'bo', t2, f(t2), 'r--')plt.subplot(222)plt.plot(t2, np.cos(2 * np.pi * t2), 'r--')plt.subplot(212)plt.plot([1, 2, 3, 4], [1, 4, 9, 16])plt.show()

效果:

 

转载于:https://www.cnblogs.com/lizm166/p/9667923.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/249490.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

signal(SIGHUP, SIG_IGN);

signal(SIGHUP, SIG_IGN); 的理解转载于:https://www.cnblogs.com/lanjiangzhou/p/10505653.html

spring钩子

Spring钩子方法和钩子接口的使用详解 前言 SpringFramework其实具有很高的扩展性&#xff0c;只是很少人喜欢挖掘那些扩展点&#xff0c;而且官方的Refrence也很少提到那些Hook类或Hook接口&#xff0c;至于是不是Spring官方有意为之就不得而知。本文浅析一下笔者目前看到的S…

【bitset 技巧 分块】bzoj5087: polycomp

神仙zq发现了${n^2\sqrt n}\over 32$做法 Description 你有三个系数为0,1的多项式f(x),g(x),h(x)求f(g(x)) mod h(x)为方便起见&#xff0c;将答案多项式所有系数对2取模输出即可如果f(x)Sigma(Ak * Xk)则f(g(x))Sigma(Ak(g(x))KInput 一共三行&#xff0c;每行一个多项式,分别…

day 012 生成器 与 列表推导式

生成器的本质就是迭代器&#xff0c;写法和迭代器不一样&#xff0c;用法一样。 获取方法&#xff1a; 1、通过生成器函数 2、通过各种推导式来实现生成器 3、通过数据的转换也可以获取生成器 例如&#xff1a; 更改return 为 yield 即成为生成器 该函数就成为了一个生成器函数…

数据库设计注意事项和原则

引言数据库设计是信息系统设计的基础&#xff0c;一个好的数据库设计在满足了软件需求之外&#xff0c;还要易维护、易扩充等等要求。当然&#xff0c;对专家们反复强调的数据的一致性、冗余性、访问效率等问题的解决&#xff0c;很大程度上取决于数据库设计者的经验和专业水平…

【AtCoder】ARC078

C - Splitting Pile 枚举从哪里开始分的即可 #include <bits/stdc.h> #define fi first #define se second #define pii pair<int,int> #define mp make_pair #define pb push_back #define space putchar( ) #define enter putchar(\n) #define MAXN 200005 #defi…

20172325 2018-2019-1 《Java程序设计》第二周学习总结

20172325 2018-2019-1 《Java程序设计》第二周学习总结 教材学习内容总结 3.1集合 集合是一种聚集、组织了其他对象的对象。集合可以分为两大类&#xff1a;线性集合和非线性集合。线性集合&#xff1a;一种其元素按照直线方式组织的集合。非线性集合&#xff1a;一种其元素按某…

数据库视图

测试表:user有id&#xff0c;name&#xff0c;age&#xff0c;sex字段 测试表:goods有id&#xff0c;name&#xff0c;price字段 测试表:ug有id&#xff0c;userid&#xff0c;goodsid字段 视图的作用实在是太强大了&#xff0c;以下是我体验过的好处&#xff1a; 作用一&…

题解 luogu P2568 GCD

题解 luogu P2568 GCD 时间&#xff1a;2019.3.11 欧拉函数前缀和 题目描述 给定整数\(N\)&#xff0c;求\(1\le x,y \le N\)且\(\gcd(x,y)\)为素数的数对\((x,y)\)有多少对. 分析 枚举素数\(p\), 先求出\(1\le x,y \le \left \lfloor \dfrac n p \right \rfloor\)且\(\gcd(x, …

解决前后台发送请求或者接口之间发送请求乱码的问题

前后台传中文乱码&#xff1a; 前台使用encodeURI 进行编码 后台使用decode进行解码 如果接口之间调用出现乱码.接收方是&#xff1f;&#xff1f;&#xff1f;&#xff1f;这种。传送方式明文的处理方式&#xff1a; 发送方使用decode 进行编码&#xff1a; 接收方使用的ecod…

MSDN帮助文档 无法显示该网页 的问题解决方案(转)

MSDN帮助文档 "无法显示该网页" 的问题解决方案 以前就遇到过这样的问题&#xff0c;还以为是IE7导致的。后来重新安装了IE7也没有解决。后来就重新安装MSDN了&#xff0c;非常郁闷。今天终于知道原因了。因为开了HijackThis删除了一些注册协议&#xff0c;然后发现M…

.net Core发布至IIS完全手册带各种踩坑

服务器环境配置 和各位大爷报告一下我的服务器环境 : Windows Server 2012 iis 8 小插曲开始: 运维大哥在昨天给了我一台新的server 0环境开始搭建 。 并且没有安装任何的系统补丁。 第一件事情请开始打 补丁 打完补丁之后有时补丁会不完全 ,所以需要去官网获取补丁: KB2919355…

Unity --- MeshRenderer之网格合并

创建如图所示的对象结构,parent为空对象&#xff0c;然后将下面的代码挂载到parent对象上运行即可。 1 using UnityEngine;2 using System.Collections;3 4 public class CombineMeshAndMaterials : MonoBehaviour5 {6 void Start()7 {8 CombineMesh();9 }…

css 盒模型的属性

1、盒模型 2、display 3、浮动转载于:https://www.cnblogs.com/Tang854416/p/9676424.html

前后端分离

、前后端分离的好处 &#xff08;1&#xff09;彻底解放前端 &#xff08;2&#xff09;提高工作效率&#xff0c;分工更加明确。 &#xff08;3&#xff09;局部性能提升 &#xff08;4&#xff09;降低维护成本 2、前后端分离的概念 后台只需要提供API接口&#xff0c;…

Win10还原被Windows Defender隔离的文件

Win10最新版本的Windows Defender隔离/删除的文件没有还原的选项&#xff0c;导致很多破解文件或是注册机直接隔离&#xff0c;到威胁历史记录中去却无法恢复。经过各个尝试&#xff0c;到微软官方论坛中也尝试了很多方法&#xff0c;后来发现竟然恢复啦。各位小伙伴可以试试这…

AtCoder Grand Contest 013 题解

A - Sorted Arrays 贪心&#xff0c;看看不下降和不上升最长能到哪&#xff0c;直接转移过去即可。 1 //waz2 #include <bits/stdc.h>3 4 using namespace std;5 6 #define mp make_pair7 #define pb push_back8 #define fi first9 #define se second 10 #define ALL(x…

servlet架构解析

https://www.jianshu.com/p/d433b5fb87e2

(Review cs231n) Backpropagation and Neural Network

损失由两部分组成&#xff1a; 数据损失正则化损失&#xff08;data loss regularization&#xff09; 想得到损失函数关于权值矩阵W的梯度表达式&#xff0c;然后进性优化操作&#xff08;损失相当于海拔&#xff0c;你在山上的位置相当于W&#xff0c;你进行移动&#xff0c…

springboot restful

https://www.jianshu.com/p/733d788ea94d