1 图像对象创建函数figure

创建图形Creates a new figure,

图形名既可以作为显示在图形窗口标题栏中的文本,也是该对象的名称

也可以通过mp.figure()获取(或激活)已创建的图形

1.1 语法

  1. plt.figure(num=None,
  2. figsize=None,
  3. dpi=None,
  4. facecolor=None,
  5. edgecolor=None,
  6. frameon=True,
  7. FigureClass=<class 'matplotlib.figure.Figure'>,
  8. clear=False,
  9. **kwargs
  10. )

参数:

num - 整数或字符串,optional。默认值None,

若无,则创建一个新图形,图形编号(数字)递增,同时将数字保存在number属性中;

若提供了num值,系统首先检测该num值(整数或字符串)是否存在,存在则将其设置为活动状态,同时返回对他的应用,若不存在,创建图形并返回它

但是,数字和字符串不同,数字为编号(不会显示在图形中,其内部的编号),字符串为图形名称

figsize - tuple of integers , 指定figure的宽和高,单位为英寸 ,若无提供,defaults to rc figure.figsize.

dpi - 图形的分辨率,int,optinal,若缺省,则defaults to rc figure.dpi.

faceclor - 背景色,若缺省,则 defaults to rc figure.facecolor.

edgecolor - 边框颜色,若缺省,则 defaults to rc figure.edgecolor.

frameon - 布尔值bool,optional ,默认True(绘制边框),若False,则不绘制边框

clear - 布尔值bool,optional,默认False,若True,且该图已存在,则会将其清除并重新绘制

FigureClass - matplotlib.figure.Figure的派生类,optional,使用自定义图形实例

1.2 图形示例

  1. import numpy as np
  2. import matplotlib.pyplot as mp
  3.  
  4. x = np.linspace(-np.pi, np.pi, 200)
  5. cos_y = np.cos(x)
  6. sin_y = np.sin(x)
  7.  
  8. # 创建图形对象
  9. mp.figure('Figure Object 1',
  10. figsize=(4, 3), dpi=120,
  11. facecolor='lightgray')
  12.  
  13. # 设置标题
  14. mp.title('Figure Object 1', fontsize=14)
  15.  
  16. # 设置坐标轴标签
  17. mp.xlabel('x', fontsize=10)
  18. mp.ylabel('y', fontsize=10)
  19.  
  20. # 设置刻度标签参数大小
  21. mp.tick_params(labelsize=8)
  22.  
  23. # 设置网格线
  24. mp.grid(linestyle=':')
  25.  
  26. # 创建图形 2 对象
  27. mp.figure('Figure Object 2',
  28. figsize=(4, 3), dpi=120,
  29. facecolor='lightgray')
  30.  
  31. # 设置标题
  32. mp.title('Figure Object 2', fontsize=14)
  33.  
  34. # 设置坐标轴标签
  35. mp.xlabel('x', fontsize=10)
  36. mp.ylabel('y', fontsize=10)
  37.  
  38. # 设置刻度标签参数大小
  39. mp.tick_params(labelsize=8)
  40.  
  41. # 设置网格线
  42. mp.grid(linestyle=':')
  43.  
  44. # 通过图形名获取/激活图形对象设置为当前图形对象
  45. # 获取'Figure Object 1'图形对象
  46. mp.figure('Figure Object 1')
  47. mp.plot(x, cos_y, color='orangered',
  48. label=r'$y=\frac{1}{2}cos(x)$')
  49. mp.legend()
  50.  
  51. # 获取/激活图形2对象
  52. mp.figure('Figure Object 2')
  53. mp.plot(x, sin_y,
  54. color='dodgerblue',
  55. label=r'$y=sin(x)$')
  56. mp.legend()
  57.  
  58. mp.show()

运行时会先闪现出Figure Object 1图形,最终出现 Figure Object 2 图形,最终的图形2如下

matplotlib figure函数学习笔记该文档也具有一定的参考价值

2 子图创建subplot()

2.1 基本语法

语法 - subplot(*args, **kwargs)

作用 - 在给定的网格位置返回子图

具体形式:

subplot(nrows, ncols, index, **kwargs)

当前图中,创建并返回一个Axes,其位置索引位于由nrows和ncols创建的虚拟网格中;索引 从1 到 “ ncows * ncols ”,且以行为主顺序递增。

如果 nrows 、ncols 、index 的值均小于10,可以直接以三位数的形式给出。

例如subplot (233) 是以2行、3列的形式给出图形布局形式,创建的Axes的索引是3。

注:subplot(233)为subplot(2, 3, 3)的简化形式。

另外,在创建子图时,除了共享边界的,在创建新的子图前会删除已存在的子图 delete any pre-existing subplot ,

如果不想删除,可以使用 matplotlib.figure.Figure.add_subplot 方法或 matplotlib.pyplot.axes 函数

kwargs 参数主要有 facecolor(背景颜色)、 polar(极轴坐标,默认False)、 projection 等

简单地说:

mp.subplot(ABC)

A:总行数

B:总列数

C:图形号(从1开始)

[231][232][233]
[234][235][236]

2.2 简单示例

  1. import matplotlib.pyplot as plt
  2.  
  3. plt.figure('Subplot', facecolor='lightgray')
  4. plt.subplot(231)
  5. plt.text(0.5, 0.5, ', ha='center', va='center', size=36, alpha=0.5)
  6.  
  7. plt.subplot(232)
  8. plt.xticks(())
  9. plt.yticks(())
  10. plt.text(0.5, 0.5, ', ha='center', va='center', size=36, alpha=0.5)
  11.  
  12. plt.subplot(233,facecolor = "red")
  13. plt.xticks(())
  14. plt.yticks(())
  15. plt.text(0.5, 0.5, ', ha='center', va='center', size=36, alpha=0.5)
  16.  
  17. plt.subplot(234)
  18. plt.xticks(())
  19. plt.yticks(())
  20. plt.text(0.5, 0.5, ', ha='center', va='center', size=36, alpha=0.5)
  21.  
  22. plt.subplot(235)
  23. plt.xticks(())
  24. plt.yticks(())
  25. plt.text(0.5, 0.5, ', ha='center', va='center', size=36, alpha=0.5)
  26.  
  27. plt.subplot(236)
  28. plt.xticks(())
  29. plt.yticks(())
  30. plt.text(0.5, 0.5, ', ha='center', va='center', size=36, alpha=0.5)
  31.  
  32. # tight_layout 调整子图之间的间隔来减少堆叠
  33. plt.tight_layout()
  34. plt.show()

3 格栅布局

指定放置子图的网格的类,网格的位置通过域subplot params类似的方式确定。

3.1 语法

  1. matplotlib.gridspec.GridSpec(
  2. self, nrows, ncols, figure=None,
  3. left=None, bottom=None, right=None, top=None,
  4. wspace=None, hspace=None,
  5. width_ratios=None, height_ratios=None
  6. )

可以简化为

  1. import matplotlib.gridspec as mg
  2. gs = mg.GridSpec(行数,列数)
  3. mp.subplot(gs[0,0])
  4. mp.subplot(gs[0,:2])

3.2 示例

  1. import matplotlib.pyplot as plt
  2. import matplotlib.gridspec as mg
  3.  
  4. plt.figure('Grid', facecolor='lightgray')
  5. gs = mg.GridSpec(3, 3)
  6.  
  7. # 1号红色
  8. plt.subplot(gs[0, :2], facecolor = 'red')
  9. plt.xticks(())
  10. plt.yticks(())
  11. plt.text(0.5, 0.5, ', ha='center', va='center', size=36, alpha=0.5)
  12.  
  13. # 2号绿色
  14. plt.subplot(gs[1:, 0], facecolor = 'green')
  15. plt.xticks(())
  16. plt.yticks(())
  17. plt.text(0.5, 0.5, ', ha='center', va='center', size=36, alpha=0.5)
  18.  
  19. # 3号蓝色
  20. plt.subplot(gs[2, 1:], facecolor = 'blue')
  21. plt.xticks(())
  22. plt.yticks(())
  23. plt.text(0.5, 0.5, ', ha='center', va='center', size=36, alpha=0.5)
  24.  
  25. # 4号橘色
  26. plt.subplot(gs[:2, 2], facecolor = 'orange')
  27. plt.xticks(())
  28. plt.yticks(())
  29. plt.text(0.5, 0.5, ', ha='center', va='center', size=36, alpha=0.5)
  30.  
  31. # 5号深红色
  32. plt.subplot(gs[1, 1], facecolor = '#8B0000')
  33. plt.xticks(())
  34. plt.yticks(())
  35. plt.text(0.5, 0.5, ', ha='center', va='center', size=36, alpha=0.5)
  36.  
  37. plt.tight_layout()
  38. plt.show()

附:tight_layout

  1. tight_layout(self, figure, renderer=None, pad=1.08, h_pad=None, w_pad=None, rect=None)
  2. | Adjust subplot parameters to give specified padding.
  3. |
  4. | Parameters
  5. | ----------
  6. |
  7. | pad : float
  8. | Padding between the figure edge and the edges of subplots, as a
  9. | fraction of the font-size.
  10. | h_pad, w_pad : float, optional
  11. | Padding (height/width) between edges of adjacent subplots.
  12. | Defaults to ``pad_inches``.
  13. | rect : tuple of 4 floats, optional
  14. | (left, bottom, right, top) rectangle in normalized figure
  15. | coordinates that the whole subplots area (including labels) will
  16. | fit into. Default is (0, 0, 1, 1).
  17. |
  18. | update(self, **kwargs)
  19. | Update the current values. If any kwarg is None, default to
  20. | the current value, if set, otherwise to rc.

附 tight_layout

tight_layout命令三个关键字参数:pad、w_pad、h_pad。

pad用于设置绘图区边缘与画布边缘的距离大小

w_pad用于设置绘图区间水平距离的大小

h_pad用于设置绘图区间垂直距离的大小

使用方法及效果如下:

fig2.tight_layout(pad=0.4, w_pad=0.5, h_pad=1.0)

详细内容可参考 Matplotlib 中文用户指南 3.4 密致布局指南

4 自由布局

自由布局是通过 axis 实现的

4.1 语法

axes(arg=None, **kwargs)

将轴 axes 添加当前图中并使其成为当前轴 axes

arg - None or 4-tuple or Axes

(1)None。用 subplot(111, **kwargs) 将创建一个新的full window axes

(2)4-tuple。float,[left(左-距左Axis的比例值), bottom(底-距下Axis的比例值), width(宽), height(高)],元素值(均为比例值)区间 (0, 1),比例值包括区间值0,1

(3)Axes。将当前轴设置为arg,相当于pyplot.sca

4.2 示例

  1. import matplotlib.pyplot as plt
  2.  
  3. plt.figure('Axes', facecolor='lightgray')
  4.  
  5. plt.axes([0.03, 0.038, 0.94, 0.924])
  6. plt.xticks(())
  7. plt.yticks(())
  8. plt.text(0.5, 0.5, ', ha='center', va='center', size=36, alpha=0.5)
  9.  
  10. plt.axes([0.65, 0.076, 0.31, 0.308])
  11. plt.xticks(())
  12. plt.yticks(())
  13. plt.text(0.5, 0.5, ', ha='center', va='center', size=36, alpha=0.5)
  14.  
  15. plt.show()

使用Matplotlib画图系列(一)

matplotlib的基本用法(十三)——figure绘制多图

matplotlib.pyplot.subplot(官方网站)

图形对象函数figure() 及 子图创建函数subplot()的更多相关文章

  1. JS高级. 03 混入式继承/原型继承/经典继承、拓展内置对象、原型链、创建函数的方式、arguments、eval、静态成员、实例成员、instanceof/是否在同一个原型链

    继承:当前对象没有的属性和方法,别人有,拿来给自己用,就是继承 1 混入式继承 var I={ }; var obj = { name: 'jack', age:18, sayGoodbye : fu ...

  2. 从new Function创建函数联想到MVC模式

    我们知道任何一个自定义函数都是Function构造器的实例,所以我们可以通过new Function的方式来创建函数,使用语法很简单, new Function(形参1, 形参2, ..., 形参N, ...

  3. Mysql创建函数出错

    目前在项目中,执行创建mysql的函数出错, mysql 创建函数出错信息如下: Error Code: 1227. Access denied; you need (at least one of) ...

  4. mysql编程--创建函数出错的解决方案

    本文章转载自:http://www.jb51.net/article/71100.htm 在使用MySQL数据库时,有时会遇到MySQL函数不能创建的情况.下面就教您一个解决MySQL函数不能创建问题 ...

  5. bash&nbsp;shell笔记7&nbsp;创建函数

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/525126 知 ...

  6. mysql中创建函数

    MySql创建函数 一.查看创建函数的功能是否开启: mysql> show variables like '%func%'; +-------------------------------- ...

  7. matlab学习笔记9 高级绘图命令_1 图形对象_根对象,轴对象,用户控制对象,用户菜单对象

    一起来学matlab-matlab学习笔记9 高级绘图命令_1 图形对象_根对象,轴对象,用户控制对象,用户菜单对象 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matl ...

  8. 《MATLAB从入门到放弃》二维曲线和图形绘制基础(一): 什么是图形对象和句柄 ?

    图形对象 一个图形包含了不同的对象 图形包括 核心对象和绘制对象 .  核心对象 线条对象 : line 文本对象 : text 矩形对象 : rectangle 补丁对象 : patch 图像对象  ...

  9. 精读JavaScript模式(四),数组,对象与函数的几种创建方式

    一.前言 放了个元旦,休息了三天,加上春运抢票一系列事情的冲击,我感觉我的心已经飞了.确实应该收收心,之前计划的学习任务也严重脱节了:我恨不得打死我自己. 在上篇博客中,笔记记录到了关于构造函数方面的 ...

随机推荐

  1. [Functional Programming] Using JS, FP approach with Arrow or State Monad

    Using Naive JS: const {modify, get} = require('crocks/State'); const K = require('crocks/combinators ...

  2. 详解使用DockerHub官方的mysql镜像生成容器

    详解使用DockerHub官方的mysql镜像生成容器 收藏 yope 发表于 10个月前 阅读 1506 收藏 32 点赞 1 评论 0 腾讯云·云上实验室:开发者零门槛,免费使用真机在线实验!&g ...

  3. CSS综合(问题)

    1.为什么我外层div设置height:auto有效果,而位于这个div里面的一个div设置height:auto就没效果啦?      将三个DIV的高度都设置为自动,overflow:auto;, ...

  4. Android Context完全解析,你所不知道的Context的各种细节

    Context相信所有的Android开发人员基本上每天都在接触,因为它太常见了.但是这并不代表Context没有什么东西好讲的,实际上Context有太多小的细节并不被大家所关注,那么今天我们就来学 ...

  5. tomcat7部署多个web应用不同编码,端口

    1个tomcat部署多个web应用可以设置不同编码,端口,server.xml配置如下: <?xml version='1.0' encoding='utf-8'?><Server ...

  6. Linux中查看系统版本的方法

    一.Linux系统中,XShell连接进去之后,查看系统版本的方法如下: 1.查找release文件 find /etc/ -name *-release 例如: 或者 2.查看release文件 c ...

  7. MySQL排序:SELECT ORDER BY

    SELECT 和ORDER BY结合进行排序: products表例如以下: a 按产品名称列进行排序: b 按多个列进行排序,默认排序顺序为升序: c 指定排序方向,即指定为降序: d 对多个列进行 ...

  8. Hibernate4获得Session

    在Hibernate3中获取Session的方法: Session session = this.getSession(): 前提是类要继承HibernateDaoSupport: public cl ...

  9. Java 基础【15】 压缩与解压缩

    Java.util.zip 提供用于读写标准 ZIP 和 GZIP 文件格式的类. 还包括使用 DEFLATE 压缩算法(用于 ZIP 和 GZIP 文件格式)对数据进行压缩和解压缩的类. 依赖 Jd ...

  10. HttpServletResponse对象(一)

    Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象.request和response对象即然代表请求和响应,那我们要 ...