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

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

相关推荐
WSSWWWSSW3 小时前
Seaborn数据可视化实战:Seaborn数据可视化基础-从内置数据集到外部数据集的应用
python·信息可视化·数据分析·matplotlib·seaborn
Small___ming3 小时前
Matplotlib 可视化大师系列(七):专属篇 - 绘制误差线、等高线与更多特殊图表
python·信息可视化·matplotlib
荼蘼5 小时前
CUDA安装,pytorch库安装
人工智能·pytorch·python
杨荧6 小时前
基于Python的农作物病虫害防治网站 Python+Django+Vue.js
大数据·前端·vue.js·爬虫·python
骑驴看星星a6 小时前
数学建模--Topsis(Python)
开发语言·python·学习·数学建模
学习3人组6 小时前
JupyterLab在线调试实验室
python
ygy.白茶7 小时前
线性回归入门级
人工智能·python·机器学习
刘同学Python学习日记9 小时前
Python 办公自动化实战:Excel 批量处理 + 自动发邮件
python
mit6.8249 小时前
[Vid-LLM] 功能分类体系 | 视频如何被“观看“ | LLM的主要作用
人工智能·python
青铜发条9 小时前
【python】python进阶——logging日志模块
python