大家好!今天我将分享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))
绘制了 x
和 np.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))
绘制了 x
和 np.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 列的子图区域。接着将返回的子图对象存储在 fig
和 ax
变量中。然后我们可以使用 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()的区别
好了,今天就讲到这里了,希望与各位一起学习数据分析,有问题可以在评论区提问,我非常愿意与大家一同探讨!