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

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

相关推荐
极客小云5 分钟前
【ComfyUI API 自动化利器:comfyui_xy Python 库使用详解】
网络·python·自动化·comfyui
闲人编程21 分钟前
Elasticsearch搜索引擎集成指南
python·elasticsearch·搜索引擎·jenkins·索引·副本·分片
痴儿哈哈30 分钟前
自动化机器学习(AutoML)库TPOT使用指南
jvm·数据库·python
花酒锄作田44 分钟前
SQLAlchemy中使用UPSERT
python·sqlalchemy
SoleMotive.1 小时前
一个准程序员的健身日志:用算法调试我的增肌计划
python·程序员·健身·职业转型
亓才孓1 小时前
[Properties]写配置文件前,必须初始化Properties(引用变量没执行有效对象,调用方法会报空指针错误)
开发语言·python
Bruk.Liu1 小时前
(LangChain 实战14):基于 ChatMessageHistory 自定义实现对话记忆功能
人工智能·python·langchain·agent
大江东去浪淘尽千古风流人物1 小时前
【VLN】VLN(Vision-and-Language Navigation视觉语言导航)算法本质,范式难点及解决方向(1)
人工智能·python·算法
Swift社区1 小时前
Gunicorn 与 Uvicorn 部署 Python 后端详解
开发语言·python·gunicorn
Coinsheep1 小时前
SSTI-flask靶场搭建及通关
python·flask·ssti