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 plt if __name__ == '__main__':
for i,color in enumerate("rgby"):
plt.subplot(221+i, facecolor=color) #背景色设置facecolor
plt.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 np def 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()

效果:

Python3 matplotlib的绘图函数subplot()简介的更多相关文章

  1. 数据分析与展示——Matplotlib基础绘图函数示例

    Matplotlib库入门 Matplotlib基础绘图函数示例 pyplot基础图表函数概述 函数 说明 plt.plot(x,y,fmt, ...) 绘制一个坐标图 plt.boxplot(dat ...

  2. 数据分析与展示---Matplotlib基本绘图函数

    一:基本绘图函数(这里介绍16个,还有许多其他的) 二:pyplot饼图plt.pie的绘制 三:pyplot直方图plt.hist的绘制 (一)修改第二个参数bins:代表直方图的个数,均分为多段, ...

  3. deep_learning_Function_ Matplotlib 3D 绘图函数 plot_surface 的 rstride 和 cstride 参数

    今晚开始接触 Matplotlib 的 3D 绘图函数 plot_surface,真的非常强大,图片质量可以达到出版级别,而且 3D 图像可以旋转 ,可以从不同角度来看某个 3D 立体图,但是我发现各 ...

  4. 第二周 数据分析之展示 Matplotlib基础绘图函数实例

    Pyplot基础图表函数 Pyplot饼图的绘制: Pyplot直方图的绘制: Pyplot极坐标图的绘制: Pyplot散点图的绘制: 单元小结: import numpy as np import ...

  5. Python——matplotlib基础绘图函数示例

    1. 2.饼图 (1) import matplotlib.pyplot as plt labels='frogs','hogs','dogs','logs'% sizes=[15,30,45,10] ...

  6. matplotlib plot 绘图函数发生阻塞(block)时的解决方法

    Is there a way to detach matplotlib plots so that the computation can continue? 在一般编辑器中: from matplo ...

  7. Matplotlib:绘图和可视化

    Matplotlib:绘图和可视化 简介 简单绘制线形图 plot函数 支持图类型 保存图表 一 .简介 Matplotlib是一个强大的Python绘图和数据可视化的工具包.数据可视化也是我们数据分 ...

  8. 《MATLAB从入门到放弃》二维曲线和图形绘制基础(二):使用Help文档学习line、plot、plotyy、subplot、hold绘图函数

    目录: »  plot 最常用的二维曲线绘图函数 >  帮助文档 >  基本使用语法 >  线条的样式.符号和颜色调整 >  图形属性调整 >  使用图形句柄进行设置 » ...

  9. 【Python开发】使用python中的matplotlib进行绘图分析数据

    matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 它的文档相当完备, ...

随机推荐

  1. 线段树(Segment Tree)总结

    0 写在前面 怎么说呢,其实从入坑线段树一来,经历过两个阶段,第一个阶段是初学阶段,那个时候看网上的一些教学博文和模板入门了线段树, 然后挑选了一个线段树模板作为自己的模板,经过了一点自己的修改,然后 ...

  2. 最长回文 HDU - 3068 manacher 模板题

    题意:找串的最长回文字串(连续) 题解:manacher版题 一些理解:首位加上任意两个字符是为了判断边界. 本算法主要是为了 1.省去奇偶分类讨论. 2.防止形如aaaaaaa的串使得暴力算法蜕化为 ...

  3. maven配置(myeclipse版)

    使用环境说明: OS:windows 7 64位 java version: "jdk1.8.0_66" IDE:myeclipse 2017 1.下载 下载地址:http://m ...

  4. 洛谷P4436 游戏 [HNOI/AHOI2018]

    正解:拓扑排序 解题报告: 传送门! 首先不难想到可以把麻油锁的一段先直接缩成一个点,然后预处理每个点能到达的最左和最右节点,然后就能O(1)地查询辣 所以难点在于预处理 可以想到,对于它给定的关于锁 ...

  5. 洛谷P1494小Z的袜子 [国家集训队] 莫队

    正解:莫队 解题报告: 这是,传送门qwq 昂大概是莫队板子题? 首先可以推出来答案是(∑C(2,color[i]))/C(2,r-l+1)趴?挺显然的不解释了qwq 然后显然除数直接做就成,考虑怎么 ...

  6. 【python基础】字符串格式化(% VS format)

    字符串格式化 Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存. 1.百分号方式 ...

  7. grunt学习二

    1. 新建文件和文件目录 mkdir grunt-in-action cd grunt-in-action cd grunt-in-action mkdir grunt-empty cd grunt- ...

  8. python 面向对象 新式类和经典类

    # 经典类写法 # schoolMember.__init__(self, name, age, sex) # 新式类写法 super(Teather, self).__init__(name, ag ...

  9. openstack 部署笔记--keystone

    控制节点 安装keystone包 # yum install openstack-keystone httpd mod_wsgi keystone配置文件 # vim /etc/keystone/ke ...

  10. [LeetCode] 589. N-ary Tree Preorder Traversal_Easy

    Given an n-ary tree, return the preorder traversal of its nodes' values. For example, given a 3-ary  ...