图形对象函数figure() 及 子图创建函数subplot()
1 图像对象创建函数figure
创建图形Creates a new figure,
图形名既可以作为显示在图形窗口标题栏中的文本,也是该对象的名称
也可以通过mp.figure()获取(或激活)已创建的图形
1.1 语法
plt.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, FigureClass=<class 'matplotlib.figure.Figure'>, clear=False, **kwargs )
参数:
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 图形示例
import numpy as np import matplotlib.pyplot as mp x = np.linspace(-np.pi, np.pi, 200) cos_y = np.cos(x) sin_y = np.sin(x) # 创建图形对象 mp.figure('Figure Object 1', figsize=(4, 3), dpi=120, facecolor='lightgray') # 设置标题 mp.title('Figure Object 1', fontsize=14) # 设置坐标轴标签 mp.xlabel('x', fontsize=10) mp.ylabel('y', fontsize=10) # 设置刻度标签参数大小 mp.tick_params(labelsize=8) # 设置网格线 mp.grid(linestyle=':') # 创建图形 2 对象 mp.figure('Figure Object 2', figsize=(4, 3), dpi=120, facecolor='lightgray') # 设置标题 mp.title('Figure Object 2', fontsize=14) # 设置坐标轴标签 mp.xlabel('x', fontsize=10) mp.ylabel('y', fontsize=10) # 设置刻度标签参数大小 mp.tick_params(labelsize=8) # 设置网格线 mp.grid(linestyle=':') # 通过图形名获取/激活图形对象设置为当前图形对象 # 获取'Figure Object 1'图形对象 mp.figure('Figure Object 1') mp.plot(x, cos_y, color='orangered', label=r'$y=\frac{1}{2}cos(x)$') mp.legend() # 获取/激活图形2对象 mp.figure('Figure Object 2') mp.plot(x, sin_y, color='dodgerblue', label=r'$y=sin(x)$') mp.legend() 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 简单示例
import matplotlib.pyplot as plt plt.figure('Subplot', facecolor='lightgray') plt.subplot(231) plt.text(0.5, 0.5, ', ha='center', va='center', size=36, alpha=0.5) plt.subplot(232) plt.xticks(()) plt.yticks(()) plt.text(0.5, 0.5, ', ha='center', va='center', size=36, alpha=0.5) plt.subplot(233,facecolor = "red") plt.xticks(()) plt.yticks(()) plt.text(0.5, 0.5, ', ha='center', va='center', size=36, alpha=0.5) plt.subplot(234) plt.xticks(()) plt.yticks(()) plt.text(0.5, 0.5, ', ha='center', va='center', size=36, alpha=0.5) plt.subplot(235) plt.xticks(()) plt.yticks(()) plt.text(0.5, 0.5, ', ha='center', va='center', size=36, alpha=0.5) plt.subplot(236) plt.xticks(()) plt.yticks(()) plt.text(0.5, 0.5, ', ha='center', va='center', size=36, alpha=0.5) # tight_layout 调整子图之间的间隔来减少堆叠 plt.tight_layout() plt.show()
3 格栅布局
指定放置子图的网格的类,网格的位置通过域subplot params类似的方式确定。
3.1 语法
matplotlib.gridspec.GridSpec( self, nrows, ncols, figure=None, left=None, bottom=None, right=None, top=None, wspace=None, hspace=None, width_ratios=None, height_ratios=None )
可以简化为
import matplotlib.gridspec as mg gs = mg.GridSpec(行数,列数) mp.subplot(gs[0,0]) mp.subplot(gs[0,:2])
3.2 示例
import matplotlib.pyplot as plt import matplotlib.gridspec as mg plt.figure('Grid', facecolor='lightgray') gs = mg.GridSpec(3, 3) # 1号红色 plt.subplot(gs[0, :2], facecolor = 'red') plt.xticks(()) plt.yticks(()) plt.text(0.5, 0.5, ', ha='center', va='center', size=36, alpha=0.5) # 2号绿色 plt.subplot(gs[1:, 0], facecolor = 'green') plt.xticks(()) plt.yticks(()) plt.text(0.5, 0.5, ', ha='center', va='center', size=36, alpha=0.5) # 3号蓝色 plt.subplot(gs[2, 1:], facecolor = 'blue') plt.xticks(()) plt.yticks(()) plt.text(0.5, 0.5, ', ha='center', va='center', size=36, alpha=0.5) # 4号橘色 plt.subplot(gs[:2, 2], facecolor = 'orange') plt.xticks(()) plt.yticks(()) plt.text(0.5, 0.5, ', ha='center', va='center', size=36, alpha=0.5) # 5号深红色 plt.subplot(gs[1, 1], facecolor = '#8B0000') plt.xticks(()) plt.yticks(()) plt.text(0.5, 0.5, ', ha='center', va='center', size=36, alpha=0.5) plt.tight_layout() plt.show()
附:tight_layout
tight_layout(self, figure, renderer=None, pad=1.08, h_pad=None, w_pad=None, rect=None) | Adjust subplot parameters to give specified padding. | | Parameters | ---------- | | pad : float | Padding between the figure edge and the edges of subplots, as a | fraction of the font-size. | h_pad, w_pad : float, optional | Padding (height/width) between edges of adjacent subplots. | Defaults to ``pad_inches``. | rect : tuple of 4 floats, optional | (left, bottom, right, top) rectangle in normalized figure | coordinates that the whole subplots area (including labels) will | fit into. Default is (0, 0, 1, 1). | | update(self, **kwargs) | Update the current values. If any kwarg is None, default to | 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 示例
import matplotlib.pyplot as plt plt.figure('Axes', facecolor='lightgray') plt.axes([0.03, 0.038, 0.94, 0.924]) plt.xticks(()) plt.yticks(()) plt.text(0.5, 0.5, ', ha='center', va='center', size=36, alpha=0.5) plt.axes([0.65, 0.076, 0.31, 0.308]) plt.xticks(()) plt.yticks(()) plt.text(0.5, 0.5, ', ha='center', va='center', size=36, alpha=0.5) plt.show()
matplotlib的基本用法(十三)——figure绘制多图
matplotlib.pyplot.subplot(官方网站)
图形对象函数figure() 及 子图创建函数subplot()的更多相关文章
- JS高级. 03 混入式继承/原型继承/经典继承、拓展内置对象、原型链、创建函数的方式、arguments、eval、静态成员、实例成员、instanceof/是否在同一个原型链
继承:当前对象没有的属性和方法,别人有,拿来给自己用,就是继承 1 混入式继承 var I={ }; var obj = { name: 'jack', age:18, sayGoodbye : fu ...
- 从new Function创建函数联想到MVC模式
我们知道任何一个自定义函数都是Function构造器的实例,所以我们可以通过new Function的方式来创建函数,使用语法很简单, new Function(形参1, 形参2, ..., 形参N, ...
- Mysql创建函数出错
目前在项目中,执行创建mysql的函数出错, mysql 创建函数出错信息如下: Error Code: 1227. Access denied; you need (at least one of) ...
- mysql编程--创建函数出错的解决方案
本文章转载自:http://www.jb51.net/article/71100.htm 在使用MySQL数据库时,有时会遇到MySQL函数不能创建的情况.下面就教您一个解决MySQL函数不能创建问题 ...
- bash shell笔记7 创建函数
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/525126 知 ...
- mysql中创建函数
MySql创建函数 一.查看创建函数的功能是否开启: mysql> show variables like '%func%'; +-------------------------------- ...
- matlab学习笔记9 高级绘图命令_1 图形对象_根对象,轴对象,用户控制对象,用户菜单对象
一起来学matlab-matlab学习笔记9 高级绘图命令_1 图形对象_根对象,轴对象,用户控制对象,用户菜单对象 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matl ...
- 《MATLAB从入门到放弃》二维曲线和图形绘制基础(一): 什么是图形对象和句柄 ?
图形对象 一个图形包含了不同的对象 图形包括 核心对象和绘制对象 . 核心对象 线条对象 : line 文本对象 : text 矩形对象 : rectangle 补丁对象 : patch 图像对象 ...
- 精读JavaScript模式(四),数组,对象与函数的几种创建方式
一.前言 放了个元旦,休息了三天,加上春运抢票一系列事情的冲击,我感觉我的心已经飞了.确实应该收收心,之前计划的学习任务也严重脱节了:我恨不得打死我自己. 在上篇博客中,笔记记录到了关于构造函数方面的 ...
随机推荐
- mysql下载安装使用教程
今天花了点时间终于把mysql安装好了,哈哈!下面上干货! (1)从官网下载mysql.地址https://www.mysql.com/ 图:按照图上的步骤就能找到 a.首页点击 DOWNLOA ...
- 使用paramiko中 Server not found in known_hosts的错误解决
报错的格式如下: 主要是缺少set_missing_host_key_policy配置信息. set_missing_host_key_policy方法,是制定连接远程主机没有本地密钥或HostKey ...
- JavaWeb项目配置化之Properties类的使用
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6397370.html 在项目中的应用见: https://github.com/ygj0930/Couple ...
- Java DES 加解密("DES/EBC/NoPadding")
private static final Cipher DES_CIPHER; static { try { DES_CIPHER = Cipher.getInstance("DES/ECB ...
- Java通过Fork/Join来优化并行计算
Java代码: package Threads; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.Recur ...
- jqPlot图表插件学习之折线图-散点图-series属性
一.准备工作 首先我们需要到官网下载所需的文件: 官网下载(笔者选择的是jquery.jqplot.1.0.8r1250.zip这个版本) 然后读者需要根据自己的情况新建一个项目并且按照如下的方式加载 ...
- 目前主流的MQ
RabbitMQ.ActiveMQ.Jafka/Kafka.ZeroMQ.Redis等 这些mq框架的优缺点以及适用场景可自行百度. 后面我将对部分MQ框架进行比较深的学习
- python模块之lib2to3(py2转py3自动化工具)
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python模块之lib2to3(py2转py3自动化工具) #http://tieba.baidu.com ...
- python模块之keyword
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python模块之keyword import keyword ''' >>> help( ...
- Resources.class.getResourceAsStream 获取配置的方法
转载:https://blog.csdn.net/dwl764457208/article/details/78593005 有空可以看这个: 类加载器与 Class.getResourceAsStr ...