type
status
date
slug
summary
tags
category
icon
password
Email
文章首发于我的个人博客:欢迎大佬们来逛逛
本文基础:
figure:画图板
figure在matplotlib中代表画图板的意思,是最基本的画图单位。
通过
figure()
函数可以创建一个新的画图板或者激活一个已经存在的。例如下面的代码,我们创建了两个画图板,一个是f1,另一个是f2,但是其实在之后的绘制的时候和画图板的名字无关,它遵循就进原则,即创建一个画图板之后,则其下方绘制的一切都是属于上面的最近的画图板的。
上面我们是创建了两个新的画图板,然后分别绘制:
如果我们想要激活一个已经存在的,则我们再次指出即可:
注意:figure的参数第一个是名称,可以是数字,字符串等等,用于标识唯一的画图板的标题。
如下我们又重新激活了 一号画图板并且在其上绘图。
我们只需要记住一句话即可:figure是最基本的绘图单位,存在则激活,不存在则创建,就近原则
plot:画布
plot有情节的意思。
我们有一个函数:subplot(x,y,p) ,它可以为我们新建画布
注意与上面的figure的区别,figure是画图板,我们需要在画图板上创建画布然后绘画,因此一个画图板上可以有多个画布,反之则不行。
如下:我们创建了一个画图板,然后又分别创建了三个画布,注意:在画布上的绘制也是遵循就近原则的。
那么subplot中的参数是什么意思呢?
我们可以把这三个数字分别从左往右读:(画图板:figure,画布:plot)
- 1 3 1:代表的就是把这个画图板分成一行三列,这个画布在第一个位置。
- 1 3 2:这个画布在第二个位置。
- 1 3 3:这个画布在第三个位置。
因此就可以明白了:画布依赖于画图板,画布的位置可以由这种方式来确定,实际上我们可以任意指定对画图板的划分。
axes:画布
axes有轴的意思。
它有一个函数:axes([x, y, w, h]),它可以为我们创建画布,对,这个函数和上面的 subplot功能是相同的,都是创建画布:
注意到其与上面的
subplot
区别了吗?axes()
的第一个参数接受一个序列:[x,y,w,h]表示这个画布放置在相对于整个画图板(x,y)的位置,宽和高为 w 和 h 。
例如我们上面的例子中:
- (0,0,0.5,0.5):在画图板(0,0)的位置,宽度和高度为0.5和0.5
第二个画布:(0.6,0,0.5,0.5):在画图板(0.6,0)的位置,为什么x是06?
稍微变化以下参数你就明白了:
最左下角就是画图板的(0,0)的位置,往右是x轴正方向,往上是y轴正方向。
因此我们可以看出:axes() 创建画布的方式相对于 subplot() 更加灵活,因为你可以任意指定他们的位置,即使他们有重叠。
补充与示例
我们创建了两个画图板:
- 第一块板子使用 axes创建三个画布,然后分别绘制图形
- 第二个板子使用subplot创建三个画布,然后绘制:
可以看到他们基本上是一样的,但是推荐使用
subplot
,因为我们无须自已指定具体坐标。axis() 可以指定某一个画布的具体显示区域。
如果我们只有一个画图板与一个画布,则默认是这样的设置
- 画图板的缺省是:figure(1)
- 图形区的缺省是:subplot(111)
规则描述:
- subplot()作用在最近使用的画图板上,有可能是缺省的画图板figure(1)。
- axes()作用在最近使用的画图板上,有可能是缺省的画图板figure(1)。
- axis()作用在最近使用的图形区上,可能来自subplot、axes等
- 绘制:plot()作用在最近使用的图形区上,可能来自subplot、axes等
参考文档: