编程学习
💻Matplotlib绘图(1):figure,axes,subplot等函数解析
00 分钟
2023-6-21
2023-11-23
type
status
date
slug
summary
tags
category
icon
password
Email
文章首发于我的个人博客:欢迎大佬们来逛逛
 
本文基础:

figure:画图板

figure在matplotlib中代表画图板的意思,是最基本的画图单位
通过 figure() 函数可以创建一个新的画图板或者激活一个已经存在的。
例如下面的代码,我们创建了两个画图板,一个是f1,另一个是f2,但是其实在之后的绘制的时候和画图板的名字无关,它遵循就进原则,即创建一个画图板之后,则其下方绘制的一切都是属于上面的最近的画图板的。
上面我们是创建了两个新的画图板,然后分别绘制:
notion image
 
如果我们想要激活一个已经存在的,则我们再次指出即可:
注意:figure的参数第一个是名称,可以是数字,字符串等等,用于标识唯一的画图板的标题。
如下我们又重新激活了 一号画图板并且在其上绘图。
notion image
我们只需要记住一句话即可:figure是最基本的绘图单位,存在则激活,不存在则创建,就近原则

plot:画布

plot有情节的意思。
我们有一个函数:subplot(x,y,p) ,它可以为我们新建画布
注意与上面的figure的区别,figure是画图板,我们需要在画图板上创建画布然后绘画,因此一个画图板上可以有多个画布,反之则不行。
如下:我们创建了一个画图板,然后又分别创建了三个画布,注意:在画布上的绘制也是遵循就近原则的。
notion image
那么subplot中的参数是什么意思呢?
我们可以把这三个数字分别从左往右读:(画图板:figure,画布:plot)
  • 1 3 1:代表的就是把这个画图板分成一行三列,这个画布在第一个位置。
  • 1 3 2:这个画布在第二个位置。
  • 1 3 3:这个画布在第三个位置。
因此就可以明白了:画布依赖于画图板,画布的位置可以由这种方式来确定,实际上我们可以任意指定对画图板的划分。

axes:画布

axes有轴的意思。
它有一个函数:axes([x, y, w, h]),它可以为我们创建画布,对,这个函数和上面的 subplot功能是相同的,都是创建画布
notion image
注意到其与上面的 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轴正方向。
notion image
因此我们可以看出:axes() 创建画布的方式相对于 subplot() 更加灵活,因为你可以任意指定他们的位置,即使他们有重叠。

补充与示例

我们创建了两个画图板
  • 第一块板子使用 axes创建三个画布,然后分别绘制图形
  • 第二个板子使用subplot创建三个画布,然后绘制:
notion image
可以看到他们基本上是一样的,但是推荐使用subplot,因为我们无须自已指定具体坐标

axis() 可以指定某一个画布的具体显示区域。
如果我们只有一个画图板与一个画布,则默认是这样的设置
  • 画图板的缺省是:figure(1)
  • 图形区的缺省是:subplot(111)
规则描述:
  • subplot()作用在最近使用的画图板上,有可能是缺省的画图板figure(1)。
  • axes()作用在最近使用的画图板上,有可能是缺省的画图板figure(1)。
  • axis()作用在最近使用的图形区上,可能来自subplot、axes等
  • 绘制:plot()作用在最近使用的图形区上,可能来自subplot、axes等

参考文档:

评论
  • Twikoo
  • Valine