likes
comments
collection
share

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

作者站长头像
站长
· 阅读数 2

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

昨天回顾:

1.学习了linspace这一函数

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

3.绘制一元二次曲线

4.绘制正弦和余弦曲线

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

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

第一种方法:

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()

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

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

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

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

plt.subplot(2,2,1)

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

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

plt.subplot(2,2,3)

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

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

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

第二种方法:

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()

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

plt.subplot(221)
plt.subplot(223)

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

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

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 列的子图区域。接着将返回的子图对象存储在 fig 和 ax 变量中。然后我们可以使用 ax[0][1] 和 ax[1][1] 来选择相应的子图区域,并在这些子图中绘制曲线。

注意:

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

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()的区别

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