matplotlib第四天:学习matplotlib画布分区的三种方法

大家好!今天我将分享matplotlib画布分区的知识

昨天回顾:

1.学习了linspace这一函数

2.简单了解了numpy这个库是干什么的

3.绘制一元二次曲线

4.绘制正弦和余弦曲线

忘了的可以回顾一下第三天的内容: matplotlib第三天:绘制一元二次曲线和绘制正弦和余弦曲线 - 掘金 (juejin.cn)

好的,那么我们正式进入正题:

matplotlib画布分区总共有三种方法:

第一种方法:

python 复制代码
import matplotlib.pyplot as plt

import numpy as np

#将画布分为区域,将图画到画布的指定区域

x=np.linspace(1,10,100)

#将画布分为2行2列,将图画到画布的1区域

plt.subplot(2,2,1)

plt.plot(x,np.sin(x))

plt.subplot(2,2,3)

plt.plot(x,np.cos(x))

plt.show()

接下来我会对代码进行一一解释:

ini 复制代码
x=np.linspace(1,10,100)

昨天我们学习了linspace这一函数,我们来复习一下,上面那一行代码的意思是创建了一个包含 100 个元素的数组 x,该数组在区间 [1, 10] 内均匀分布。

scss 复制代码
plt.subplot(2,2,1)

plt.plot(x,np.sin(x))

这一段代码的意思就是通过 plt.subplot(2, 2, 1) 选择了画布的第一个区域作为当前子图。接下来,使用 plt.plot(x, np.sin(x)) 绘制了 xnp.sin(x) 的曲线,并将其显示在第一个子图区域。

scss 复制代码
plt.subplot(2,2,3)

plt.plot(x,np.cos(x))

这一段代码的意思就是通过 plt.subplot(2, 2, 3) 选择了画布的第三个区域作为当前子图。使用 plt.plot(x, np.cos(x)) 绘制了 xnp.cos(x) 的曲线,并将其显示在第三个子图区域。

最后使用 plt.show() 将这两个子图显示出来即可

第二种方法:

python 复制代码
import matplotlib.pyplot as plt

import numpy as np

#将画布分为区域,将图画到画布的指定区域

x=np.linspace(1,10,100)

#将画布分为2行2列,将图画到画布的1区域

plt.subplot(221)

plt.plot(x,np.sin(x))

plt.subplot(223)

plt.plot(x,np.cos(x))

plt.show()

第一种方法与第二种方法差别不大,主要是这两行代码改变了

scss 复制代码
plt.subplot(221)
plt.subplot(223)

只是删去了逗号,就这么简单,第二种方法是第一种的简略方式

下面我来介绍一下第三种方法,第三种方法与前两种方法大有不同:

ini 复制代码
import matplotlib.pyplot as plt
import numpy as np

# 将画布分为区域,将图画到画布的指定区域
x = np.linspace(1, 10, 100)

# 将画布分为2行2列,创建子图对象
fig, ax = plt.subplots(nrows=2, ncols=2)

# 在第一个子图(ax[0][1])中绘制曲线
ax[0][1].plot(x, np.sin(x))

# 在第二个子图(ax[1][1])中绘制曲线
ax[1][1].plot(x, np.cos(x))

# 显示图形
plt.show()

这种方法使用了矩阵的知识,通过plt.subplot(nrows=2, ncols=2) 来指定将画布分为 2 行 2 列的子图区域。接着将返回的子图对象存储在 figax 变量中。然后我们可以使用 ax[0][1]ax[1][1] 来选择相应的子图区域,并在这些子图中绘制曲线。

注意:

有细心的小伙伴可能发现了有一个地方有不同:

scss 复制代码
fig, ax = plt.subplots(nrows=2, ncols=2)

plt.subplot(221)

plt.subplot(2,2,1)

第三个方法subplot加了s,是subplots。下面我们来看看它们之间的区别是什么:

它们的区别主要在于返回的对象类型和使用方式。

  • plt.subplot() 函数是用于在单个画布上创建和选择子图的函数。它接受三个整数参数,用于指定子图的行数、列数和当前选择的子图索引。例如,plt.subplot(2, 2, 1) 表示将画布分为 2 行 2 列的子图,并选择第一个子图作为当前子图。您可以多次调用 plt.subplot() 来选择不同的子图区域,并在每个子图中绘制不同的内容。
  • plt.subplots() 函数是用于创建包含多个子图的画布,并返回包含子图对象的元组。它接受两个整数参数,用于指定子图的行数和列数。例如,plt.subplots(2, 2) 表示创建一个包含 2 行 2 列子图的画布,并返回一个包含子图对象的元组 (fig, ax)。您可以使用 ax 对象来选择和操作不同的子图区域,并在每个子图中绘制内容。

总结起来,plt.subplot() 是用于选择单个子图的函数,而 plt.subplots() 是用于创建包含多个子图的画布并返回子图对象的函数。plt.subplot() 是直接在当前画布上进行操作,而 plt.subplots() 则提供了更灵活的方式来处理多个子图,并返回一个可以访问和操作各个子图的对象。

今天的学习总结:

1.学习matplotlib画布分区的三种方法

2.了解了plt.subplot()与plt.subplots()的区别

好了,今天就讲到这里了,希望与各位一起学习数据分析,有问题可以在评论区提问,我非常愿意与大家一同探讨!

相关推荐
amazinging39 分钟前
北京-4年功能测试2年空窗-报培训班学测开-第四十四天
python·学习·appium
UrbanJazzerati1 小时前
Xlwings安装报错:Connection timed out & WinError 32?一招解决你的安装难题!
python
Tipriest_1 小时前
Python异常类型介绍
开发语言·python·异常
前端付豪1 小时前
21、用 Python + Pillow 实现「朋友圈海报图生成器」📸(图文合成 + 多模板 + 自动换行)
后端·python
猿榜2 小时前
魔改编译-永久解决selenium痕迹(二)
javascript·python
广东数字化转型2 小时前
java jar 启动应用程序
开发语言·python
费弗里2 小时前
Python全栈应用开发利器Dash 3.x新版本介绍(4)
python·dash
辣辣y2 小时前
python基础day08
开发语言·python
花海如潮淹2 小时前
硬件产品研发管理工具实战指南
前端·python
张彦峰ZYF3 小时前
快速掌握Python编程基础
python