一般状况下,咱们能够将一副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()将当前的Figure对象保存成图像文件,图像格式由图像文件的扩展名决定。下面程序将当前的图表保存为“test.png”,而且经过dpi指定图像的分辨率为120,所以输出图像的宽度为“8X120 = 960”个像素。使用这种方法能够很容易编写出批量输出图表的程序。plt.savefig("test.png",dpi=120)
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: 当前子图的编号。
得到Axes的x坐标范围,默认是 (0.0, 1.0)
得到y轴的数据刻画类型
将x轴设置为log
若是有多个子图,咱们可使用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间的参数