matplotlib基础知识全面解析

图像基本知识:

一般状况下,咱们能够将一副Matplotlib图像分红三层结构:html

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

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

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

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

  Canvas是位于最底层的系统层,绘图过程当中充当画板的角色,即放置画布的工具。一般状况下,咱们并不须要对Canvas特别的声明,可是当我须要在其余模块如PyQt中调用Matplotlib模块绘图时,就须要首先声明Canvas,这就至关于咱们在自家画室画画不用强调要用画板,出去写生时要特地带一块画板。工具

  Figure(fig)是Canvas上方的第一层,也是须要用户来操做的应用层的第一层,在绘图的过程当中充当画布的角色。当咱们对Figure大小、背景色彩等进行设置的时候,就至关因而选择画布大小、材质的过程。所以,每当咱们绘图的时候,写的第一行就是建立Figure的代码。布局

  Axes(ax,坐标系)是应用层的第二层,在绘图的过程当中至关于画布上绘图区的角色。一个Figure对象能够包含多个Axes对象,每一个Axes都是一个独立的坐标系,绘图过程当中的全部图像都是基于坐标系绘制的。spa

辅助显示层:3d

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

图像层:

  图像层指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间的参数

相关文章
相关标签/搜索