图像基本知识:

通常情况下,我们可以将一副Matplotlib图像分成三层结构:

1.第一层是底层的容器层,主要包括Canvas、Figure、Axes;

2.第二层是辅助显示层,主要包括Axis、Spines、Tick、Grid、Legend、Title等,该层可通过set_axis_off()或set_frame_on(False)等方法设置不显示;

3.第三层为图像层,即通过plot、contour、scatter等方法绘制的图像。

容器层:容器层主要由Canvas、Figure、Axes组成

  Canvas是位于最底层的系统层,绘图过程中充当画板的角色,即放置画布的工具。通常情况下,我们并不需要对Canvas特别的声明,但是当我需要在其他模块如PyQt中调用Matplotlib模块绘图时,就需要首先声明Canvas,这就相当于我们在自家画室画画不用强调要用画板,出去写生时要特意带一块画板。

  Figure(fig)是Canvas上方的第一层,也是需要用户来操作的应用层的第一层,在绘图的过程中充当画布的角色。当我们对Figure大小、背景色彩等进行设置的时候,就相当于是选择画布大小、材质的过程。因此,每当我们绘图的时候,写的第一行就是创建Figure的代码。

  Axes(ax,坐标系)是应用层的第二层,在绘图的过程中相当于画布上绘图区的角色。一个Figure对象可以包含多个Axes对象,每个Axes都是一个独立的坐标系,绘图过程中的所有图像都是基于坐标系绘制的。

辅助显示层:

  辅助显示层为Axes内的除了根据数据绘制出的图像以外的内容,主要包括Axes外观(facecolor)、边框线(spines)、坐标轴(axis)、坐标轴名称(axis label)、坐标轴刻度(tick)、坐标轴刻度标签(tick label)、网格线(grid)、图例(legend)、标题(title)等内容。该层的设置可使图像显示更加直观更加容易被用户理解,但又并不会对图像产生实质的影响。

图像层:

  图像层指Axes内通过plot、scatter、hist、contour、bar、barbs等函数根据数据绘制出的图像。

保存图表plt.savefig()

  调用plt.savefig()将当前的Figure对象保存成图像文件,图像格式由图像文件的扩展名决定。下面程序将当前的图表保存为“test.png”,并且通过dpi指定图像的分辨率为120,因此输出图像的宽度为“8X120 = 960”个像素。使用这种方法可以很容易编写出批量输出图表的程序。plt.savefig("test.png",dpi=120)

plt.imshow()

imshow()函数格式为:matplotlib.pyplot.imshow(X, cmap=None)

X: 要绘制的图像或数组

cmap: 颜色图谱(colormap), 默认绘制为RGB(A)颜色空间。其它可选的颜色图谱如下列表:

颜色图谱

描述

autumn

红-橙-黄

bone

黑-白,x线

cool

青-洋红

copper

黑-铜

flag

红-白-蓝-黑

gray

黑-白

hot

黑-红-黄-白

hsv

hsv颜色空间, 红-黄-绿-青-蓝-洋红-红

inferno

黑-红-黄

jet

蓝-青-黄-红

magma

黑-红-白

pink

黑-粉-白

plasma

绿-红-黄

prism

红-黄-绿-蓝-紫-...-绿模式

spring

洋红-黄

summer

绿-黄

viridis

蓝-绿-黄

winter

蓝-绿

Plt.figure()

matplotlib.pyplot.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None)

所有参数都是可选的,都有默认值,因此调用该函数时可以不带任何参数,其中:

num: 整型或字符型都可以。设置为整型,则该整型数字表示窗口序号。设置为字符型,则该字符串表示窗口名称。用该参数来命名窗口,两个窗口序号或名相同,则后一个窗口会覆盖前一个窗口。

figsize: 设置窗口大小。是一个tuple型的整数,如figsize=(8,8)。

dpi: 整形数字,表示窗口的分辨率。

facecolor: 窗口的背景颜色。edgecolor: 窗口的边框颜色。

用figure()函数创建的窗口,只能显示一幅图片,显示多幅图片,则需要将这个窗口再划分为几个子图,在每个子图中显示不同的图片。

可以使用subplot()函数来划分子图,函数格式为:

matplotlib.pyplot.subplot(nrows, ncols, plot_number)

nrows: 子图的行数。

ncols:  子图的列数。

plot_number: 当前子图的编号。

ax.get_xlim()

获得Axes的x坐标范围,默认是 (0.0, 1.0)

ax.get_yscale()

获得y轴的数据刻画类型

ax.set_xscale('log')

将x轴设置为log

plt.tight_layout()

如果有多个子图,我们可以使用tight_layout()函数来调整显示的布局,该函数格式为:

matplotlib.pyplot.tight_layout(pad=1.08, h_pad=None, w_pad=None, rect=None)

所有的参数都是可选的,调用该函数时可省略所有的参数:

pad: 主窗口边缘和子图边缘间的间距,默认为1.08

h_pad, w_pad: 子图边缘之间的间距,默认为 pad_inches

rect: 一个矩形区域,如果设置这个值,则将所有的子图调整到这个矩形区域内。

一般调用为:plt.tight_layout()  #自动调整subplot间的参数

matplotlib基础知识全面解析的更多相关文章

  1. Matplotlib基础知识

    Matplotlib基础知识 Matplotlib中的基本图表包括的元素 x轴和y轴 axis水平和垂直的轴线 x轴和y轴刻度 tick刻度标示坐标轴的分隔,包括最小刻度和最大刻度 x轴和y轴刻度标签 ...

  2. [系统安全] 十六.PE文件逆向基础知识(PE解析、PE编辑工具和PE修改)

    [系统安全] 十六.PE文件逆向基础知识(PE解析.PE编辑工具和PE修改) 文章来源:https://masterxsec.github.io/2017/05/02/PE%E6%96%87%E4%B ...

  3. matplotlib -- 基础知识

    matplotlib 组织图表的方式 最上层是一个 Figure 实例,包含了所有可见的和其他一些不可见的内容.该 Figure 实例包含了一个 Axes 实例的成员属性 Figure.axes,同时 ...

  4. Matplotlib基础使用

    matplotlib 一.Matplotlib基础知识 Matplotlib中的基本图表包括的元素 x轴和y轴 axis 水平和垂直的轴线 x轴和y轴刻度 tick 刻度标示坐标轴的分隔,包括最小刻度 ...

  5. python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

    本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...

  6. Java 面试知识点解析(一)——基础知识篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  7. 曹工说Redis源码(2)-- redis server 启动过程解析及简单c语言基础知识补充

    文章导航 Redis源码系列的初衷,是帮助我们更好地理解Redis,更懂Redis,而怎么才能懂,光看是不够的,建议跟着下面的这一篇,把环境搭建起来,后续可以自己阅读源码,或者跟着我这边一起阅读.由于 ...

  8. [源码解析] 深度学习分布式训练框架 Horovod (1) --- 基础知识

    [源码解析] 深度学习分布式训练框架 Horovod --- (1) 基础知识 目录 [源码解析] 深度学习分布式训练框架 Horovod --- (1) 基础知识 0x00 摘要 0x01 分布式并 ...

  9. [源码解析] PyTorch 流水线并行实现 (1)--基础知识

    [源码解析] PyTorch 流水线并行实现 (1)--基础知识 目录 [源码解析] PyTorch 流水线并行实现 (1)--基础知识 0x00 摘要 0x01 历史 1.1 GPipe 1.2 t ...

随机推荐

  1. 一不小心把win10的秘钥卸载了解决方法

    我遇到的第一个问题是Win10家庭版激活失败提示错误代码0xC004C003 然后我百度后看到一个解决方法是卸载秘钥然后再输入秘钥的,于是我执行了slmgr.vbs /upk,发现win10秘钥被卸载 ...

  2. sofa graphql 2 rest api 试用

      大部分代码还是来自sofa 的官方文档,同时添加了docker && docker-compose集成 备注: 代码使用typescript 同时运行的时候为了方便直接运行使用ts ...

  3. quicklink 基本使用

    原理 使用可见性以及预取数据,同时充分利用浏览器的空闲时间,主要是解析href 以通过代码的选项指定需要加载的数据,当然其中 也添加了好多灵活的控制参数,方便我们使用,而且代码很小,压缩之后也就1kb ...

  4. auto sudo password in shell

    here is the example how to implement the auto password in shell script. Echo yourpasswordhere | sudo ...

  5. MSP430F2272 Flash

    The collected information is listed below during flash of MSP430 development. MSP430F2272: 32KB + 25 ...

  6. kubernetes 中,Pod、Deployment、ReplicaSet、Service 之间关系分析

    deploy控制RS,RS控制Pod,这一整套,向外提供稳定可靠的Service. 详见:https://blog.csdn.net/ucsheep/article/details/81781509

  7. Python正则表达式指南 (转)

    本文http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html 正则表达式经常被用到,而自己总是记不全,转载一份完整的以备不时之需. 1. ...

  8. RedHat6.5安装单机flume1.6

    版本号: RedHat6.5   JDK1.8   apache-flume-1.6.0 1.apache-flume-1.6.0-bin.tar.gz 下载 官网下载地址:http://archiv ...

  9. 小数据量的Key-Value查找类的实现

    平时写程序时经常要把一些Key与Value保存起来,但一般数据量都不大,故不想用TStringHash来做.而用TStringList来做,还要写一个"=",挺别扭!而且数据类型还 ...

  10. OpenEXR的读取机制

    这还是一篇学习笔记,知识重点还是领会完再敲一遍比较好. OpenEXR通过RgbaInputFile这个接口读取RGBA ONLY图像文件信息,该接口通过dataWindow()方法获取图像边界坐标信 ...