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

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

相关推荐
叫我DPT9 分钟前
分享一个python启动文件脚本(django示例)
数据库·python·django
_玖-幽14 分钟前
大数据分析02 基础语法差异
python·数据分析·go
coder777715 分钟前
js逆向分享
javascript·爬虫·python·算法·安全
QQ_77813297422 分钟前
从文本到视频:基于扩散模型的AI生成系统全解析(附PyTorch实现)
人工智能·pytorch·python
明月看潮生42 分钟前
青少年编程与数学 02-016 Python数据结构与算法 25课题、量子算法
python·算法·青少年编程·量子计算·编程与数学
水w44 分钟前
【Python爬虫】详细入门指南
开发语言·爬虫·python·scrapy·beautifulsoup
weixin_445054721 小时前
力扣刷题-热题100题-第35题(c++、python)
c++·python·leetcode
_x_w2 小时前
【17】数据结构之图及图的存储篇章
数据结构·python·算法·链表·排序算法·图论
pianmian12 小时前
arcgis几何与游标(1)
开发语言·python
冬天vs不冷2 小时前
SpringBoot条件注解全解析:核心作用与使用场景详解
java·spring boot·python