Python----数据分析(Matplotlib五:pyplot的其他函数,Figure的其他函数, GridSpec)
一、pyplot的其他函数
1.1、xlabel
在matplotlib中, plt.xlabel() 函数用于为当前活动的坐标轴(Axes)设置x轴的 标签。当你想要标识x轴代表的数据或单位时,这个函数非常有用。
plt.xlabel('xlabel text')
1.2、ylabel
在matplotlib中, plt.ylabel() 函数用于为当前活动的坐标轴(Axes)设置y轴的 标签。当你想要标识y轴代表的数据或单位时,这个函数非常有用。
plt.ylabel('ylabel text')
1.3、title
在matplotlib中, title 函数用于为当前活动的坐标轴(Axes)设置图表的标题。 标题通常位于图表的顶部中央,用于简要描述图表的内容。
plt.title('Chart Title')
import numpy as np
import matplotlib.pyplot as plt# 计算曲线上的点的x和y坐标
x = np.arange(0, 3 * np.pi, 0.1)
y = np.sin(x)# 使用Matplotlib绘制点,并添加fmt和kwargs属性
plt.plot(x, y,label='Sine Wave', # 图例标签linewidth=2, # 线宽linestyle='-', # 线型color='blue', # 线的颜色marker='o', # 标记样式markersize=5, # 标记的大小markeredgecolor='black', # 标记边缘的颜色markeredgewidth=1, # 标记边缘的宽度markerfacecolor='none', # 标记内部的颜色alpha=0.5 # 透明度)# 显示x轴标签
plt.xlabel('x')
plt.ylabel('y')
plt.title('Sine Wave')# 显示图例
plt.legend()# 显示图形
plt.show()

1.4、subplot
在 Matplotlib 中, subplot函数用于在一个图形窗口( 局,每个子图布局区域对应一个 Figure)中创建多个子图布 Axes对象,通过该 Axes对象可以进行数据绘制操 作,使用 subplot 可以在网格中安排这些子图。
plt.subplot(nrows, ncols, plot_number)
| 名称 | 描述 |
|---|---|
| nrows | 子图的行数 |
| ncols | 子图的列数 |
| plot_number | 当前子图的编号,从1开始,从左上角到右下角按行优先顺序递 增。 |
import numpy as np
import matplotlib.pyplot as plt# 创建数据
x = np.arange(0, 3 * np.pi, 0.01)
y_sin = np.sin(x)
y_cos = np.cos(x)# 在第一个位置创建子图
plt.subplot(2, 2, 1) # 2行1列,第一个子图
plt.plot(x, y_sin)
plt.title('Sine Wave')
plt.xlabel('x')
plt.ylabel('y_sin')# 在第二个位置创建子图
plt.subplot(2, 2, 2) # 2行1列,第二个子图
plt.plot(x, y_cos)
plt.title('Cosine Wave')
plt.xlabel('x')
plt.ylabel('y_cos')# 调用 tight_layout 来自动调整子图参数
plt.tight_layout()# 显示图形
plt.show()

二、Figure的其他函数
2.1、clf
与Figure对象的clear方法的作用类似,但clf归属于pyplot库,而不是Figure对象的方 法。
import matplotlib.pyplot as plt# 创建一个包含多个子图的图形
fig, axs = plt.subplots(2, 2)# 在每个子图中绘制一些数据
axs[0, 0].plot([1, 2, 3], [1, 2, 3])
axs[0, 1].plot([1, 2, 3], [3, 2, 1])
axs[1, 0].plot([1, 2, 3], [1, 3, 2])
axs[1, 1].plot([1, 2, 3], [2, 1, 3])# 使用 tight_layout 自动调整子图布局
fig.tight_layout()# # Axes对象的clear
# axs[0, 0].clear()# pyplot库下的clf()
plt.clf()# 显示图形
2.2、gcf
该函数用于返回当前活动的图形(figure)对象。
matplotlib.pyplot.gcf()
| 返回当前活动的 Figure 对象。如果没有活动的图形,这个函数将创建一个新的 图形,并将其作为当前活动的图形返回。 |
使用场景:
1、当你需要在脚本中获取或操作当前图形时, plt.gcf() 非常有用。
2、它允许你访问和修改当前图形的属性,比如大小、标题、背景颜色等。
3、你可以使用返回的 Figure 对象来添加新的子图(axes)、调整布局、保存图形 到文件等。
import matplotlib.pyplot as plt# 创建一个新的图形和子图
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [1, 2, 3])# 获取当前活动的图形对象
current_fig = plt.gcf()print(current_fig is fig)# 设置图形的大小
current_fig.set_size_inches(8, 6)# 设置图形的标题
current_fig.suptitle('Example Plot')# 显示图形
plt.show()
2.3、savefig
该函数用于将当前图形保存到文件中。该函数通常在完成图形绘制后调用,以便将图 形输出为图像文件,便于保存或分享。
matplotlib.pyplot.savefig(fname, dpi='figure', format=None, metadata=None, bbox_inches=None, pad_inches=0.1, facecolor='auto', edgecolor='auto', backend=None, **kwargs)
| 名称 | 描述 |
|---|---|
| fname | 文件的路径或文件对象, 用于保存图像。如果未指定 format 参数,Matplotlib 会根据文件扩展名推断图 像格式。 |
| dpi | 图像的分辨率,以每英寸点数为单位。如果设置为 'figure',则使用当前图形的分辨率设置。 |
| format | 图像的文件格式,例如 ‘png’, ‘pdf’, ‘svg’, ‘ps’, ‘eps’ 等。如 果未指定,则从 fname 的扩展名推断。 |
| metadata | 要存储在图像文件中的元数据。 |
| bbox_inches | 图像的边界框。如果设置为 ‘tight’,则 Matplotlib 会尝试紧凑地剪裁图像周围的空白。 |
| pad_inches | 在边界框周围添加额外的空白(英寸)。 |
| facecolor | 图形背景的颜色 |
| edgecolor | 图形边缘的颜色 |
| backend | 用于保存图像的特定后端。这通常不需要设置,除非你 想要覆盖默认的后端 |
| kwargs | 其他关键字参数,将传递给底层后端的保存函数。 |
import matplotlib.pyplot as plt# 创建一些数据
x = [0, 1, 2, 3, 4]
y = [0, 1, 4, 9, 16]# 绘制图形
plt.plot(x, y)# 保存图形到文件
plt.savefig('plot.png', dpi=200, bbox_inches='tight', facecolor='g')# 显示图形(可选)
plt.show()
2.4、imshow
该函数可以用来显示二维数据数组,其中每个数组元素对应图像的一个像素。
matplotlib.pyplot.imshow(X, cmap=None, norm=None, aspect=None, interpolation=None, alpha=None, vmin=None, vmax=None, origin=None, **kwargs)
| 名称 | 描述 |
|---|---|
| X | 图像数据,通常是二维数组,但也可以是一维数组(在这种情况下,数据将 被解释为线图)。数据类型通常是浮点数或整数。 |
| cmap | 颜色映射(colormap),用于指定图像中数值到颜色的映射。默认是 None,此时将使用默认的 colormap,通常是 viridis。 |
| norm | 用于标准化数据值的归一化对象,可以确保颜色映射是线性的或者使用 其他映射方式 |
| aspect | 控制图像的纵横比。 'auto' 保持宽高比, 'equal' 使每个像素都是 正方形,或者可以是一个数字。 |
| interpolation | 指定图像缩放时的插值方法。常见的选项有 'nearest'(最近 邻插值)、 'bilinear'(双线性插值)、 'bicubic'(双三次插值)等。 |
| alpha | 图像的透明度,取值范围是 [0, 1]。 |
| vmin, vmax | 用于颜色映射的数据值范围。默认情况下,这些值是从数据中自 动推断出来的。 |
| origin | 指定图像的原点, 'upper' 表示原点在左上角,‘lower' 表示原点在左下角 |
| **kwargs | 其他关键字参数。 |
与plt.show的区别是:
1、imshow 是用于创建图像的函数,而 show 是用于显示图像的函数。
2、你可以在一个脚本中多次调用 imshow 来绘制多个图像,但通常只需要在脚本的 末尾调用一次 show 来显示所有图像。
import matplotlib.pyplot as plt
import numpy as np# 创建两个简单的数据集
data1 = np.random.rand(10, 10)
data2 = np.random.rand(10, 10)# 创建一个包含两个子图的图形
fig, (ax1, ax2) = plt.subplots(1, 2)# 在第一个子图上显示第一个图像,并应用 viridis 颜色映射
ax1.imshow(data1, cmap='viridis', aspect='equal', origin='lower')
ax1.set_title('Image 1')# 在第二个子图上显示第二个图像,并应用 plasma 颜色映射
ax2.imshow(data2, cmap='gray')
ax2.set_title('Image 2')# 调整子图之间的间距
plt.tight_layout()# 显示图像
plt.show()
2.5、close
该函数用于关闭一个或多个打开的图形窗口。在 Matplotlib 中,每次调用绘图命令 (如 plt.plot() 或 plt.imshow())时,都会创建一个新的图形(Figure)和一 个或多个子图(Axes)。 close 函数可以用来关闭这些图形窗口,释放资源,并允 许用户清理不再需要的图形。
matplotlib.pyplot.close(fig=None)
| 名称 | 描述 |
|---|---|
| fig | 指定要关闭的图形。如果是一个 Figure 对 象,则关闭该图形。如果是一个整数,则关闭与该编号对应的图形。如果省略或 为 None,则关闭当前图形。’all'表示关闭所有的图像。 |
import matplotlib.pyplot as plt
import time
# 创建并显示第一个图形
plt.figure()
plt.plot([1, 2, 3], [1, 2, 3])
plt.show(block=False)# 创建并显示第二个图形
plt.figure()
plt.plot([3, 2, 1], [1, 2, 3])
plt.show(block=False)# # 关闭当前图形
# plt.close(1)# 创建第三个图形,但不显示
plt.figure()
plt.plot([1, 2, 3], [3, 2, 1])
plt.show(block=False)time.sleep(2)
# 关闭所有图形
plt.close(fig='all')time.sleep(2)
print(123)
2.6、pause
用于在动画或交互式绘图过程中暂停一段时间。这个函数在动画制作或者需要在绘图 之间插入延迟时非常有用。
matplotlib.pyplot.pause(interval)
| 名称 | 描述 |
|---|---|
| interval | 这个参数是一个浮点数,表示暂停的秒数。默认值通常是 0.1 秒。 |
主要作用:
1、暂停执行:当调用 plt.pause(interval) 时,Python 脚本会暂停执行指定的 时间(以秒为单位)。
2、更新显示:如果在绘图之前调用了 plt.pause,它将允许动态更新的图形(例如 动画)在屏幕上显示出来。这对于交互式绘图非常有用,因为它可以让用户看到 图形的更新。
import matplotlib.pyplot as plt
import numpy as np# 创建一个图形和一个子图
fig, ax = plt.subplots()# 生成一些数据
t = np.arange(0, 10, 0.01)
s = np.sin(t)# 绘制第一条线
ax.plot(t, s)# 显示图形
plt.show(block=False)# 更新线的数据并暂停
for phase in np.arange(0, 2 * np.pi, 0.05):ax.plot(t + phase, np.sin(t + phase))plt.pause(0.01)# 关闭图形
plt.close()

三、GridSpec
GridSpec提供了更灵活的方式来安排子图(subplot)的布局。在 Matplotlib 中,默 认的子图布局是通过 plt.subplot() 或 plt.subplots() 等函数实现的,但这些 函数都是按照行列均匀划分子图的,而GridSpec可以根据具体需求定制每个子图的 位置和大小。
该类处于 matplotlib.gridspec库下。
matplotlib.gridspec.GridSpec(nrows, ncols, figure=None, left=None, bottom=None, right=None, top=None, wspace=None, hspace=None, width_ratios=None, height_ratios=None)
| 名称 | 描述 |
|---|---|
| nrows | 网格的行数 |
| ncols | 网格的列数 |
| figure | 如果提供,GridSpec将与这个指定的 Figure 实例关联。如果没有提供, GridSpec 将与当前活动的 Figure 关联。 |
| left, bottom, right,top | 这些参数用于指定网格在整个画布中的位 置,它们的值应该在 0 到 1 之间,表示画布宽度和高度的百分比。例如, left=0.1 表示网格左边界距离画布左边界 10% 的位置。 |
| wspace | 子图之间的水平间距,这个值是以画布宽度的百分比来表示的。 |
| hspace | 子图之间的垂直间距,这个值是以画布高度的百分比来表示的。 |
| width_ratios | 可选,指定各列的相对宽度。默认情况下,所有列的宽度都是相 等的。如果提供这个参数,那么每一列的宽度将是其对应值的相对比例。 |
| height_ratios | 可选,指定各行的相对高度。默认情况下,所有行的高度都是 相等的。如果提供这个参数,那么每一行的高度将是其对应值的相对比例。 |
import matplotlib.pyplot as plt
from matplotlib.gridspec import GridSpecfig = plt.figure(figsize=(8, 4))# 创建一个 2 行 3 列的 GridSpec
gs = GridSpec(2, 3)# 添加子图
ax1 = fig.add_subplot(gs[0, 0])
ax2 = fig.add_subplot(gs[0, 1])
ax3 = fig.add_subplot(gs[0, 2])
# ax4 = fig.add_subplot(gs[1, 0])
ax5 = fig.add_subplot(gs[1, :])
# 注意:gs[1, 1:] 表示第二行的第二列和第三列plt.show()

相关文章:
Python----数据分析(Matplotlib五:pyplot的其他函数,Figure的其他函数, GridSpec)
一、pyplot的其他函数 1.1、xlabel 在matplotlib中, plt.xlabel() 函数用于为当前活动的坐标轴(Axes)设置x轴的 标签。当你想要标识x轴代表的数据或单位时,这个函数非常有用。 plt.xlabel(xlabel text) 1.2、ylabel 在matplotl…...
C语言——链表
大神文献:https://blog.csdn.net/weixin_73588765/article/details/128356985 目录 一、链表概念 1. 什么是链表? 1.1 链表的构成 2. 链表和数组的区别 数组的特点: 链表的特点: 二者对比: 二…...
使用免费IP数据库离线查询IP归属地
一、准备工作 1.下载免费IP数据库 首先,访问 MaxMind官网(https://www.maxmind.com/en/home)如果你还没有MaxMind账号,可以通过此链接地址(https://www.maxmind.com/en/geolite2/signup)进行账号注册&…...
MySQL(单表)知识点
文章目录 1.数据库的概念2.下载并配置MySQL2.1初始化MySQL的数据2.2注册MYSQL服务2.3启动MYSQL服务2.4修改账户默认密码2.5登录MYSQL2.6卸载MYSQL 3.MYSQL数据模型3.1连接数据库 4.SQL简介4.1SQL的通用语法4.2SQL语句的分类4.3DDL语句4.3.1数据库4.3.2表(创建,查询,修改,删除)4…...
1.15-16-17-18迭代器与生成器,函数,数据结构,模块
目录 15,Python3 迭代器与生成器15-1 迭代器15-1-1 基础知识15-1-2 迭代器与for循环工作原理 15-2 生成器(本质就是迭代器)15-2-1 yield 表达式15-2-2 三元表达式15-2-3 列表生成式15-2-4 其他生成器(——没有元祖生成式——&…...
window下的docker内使用gpu
Windows 上使用 Docker GPU需要进行一系列的配置和步骤。这是因为 Docker 在 Windows 上的运行环境与 Linux 有所不同,需要借助 WSL 2(Windows Subsystem for Linux 2)和 NVIDIA Container Toolkit 来实现 GPU 的支持。以下是详细的流程: 一、环境准备 1.系统要求 Window…...
CVE-2025-0392:JeeWMS graphReportController.do接口SQL注入漏洞复现
文章目录 CVE-2025-0392:JeeWMS graphReportController.do接口SQL注入漏洞复现0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.构造POC2.复现CVE-2025-0392:JeeWMS graphReportController.do接口SQL注入漏洞复现 0x01 前言 免责声明:请勿利用文章内的相…...
DR和BDR的选举规则
在 OSPF(开放最短路径优先)协议中,DR(Designated Router,指定路由器) 和 BDR(Backup Designated Router,备份指定路由器) 的选举是为了在广播型网络(如以太网…...
Java 大视界 -- Java 大数据在智能家居能源管理与节能优化中的应用(120)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
第七课:Python反爬攻防战:Headers/IP代理与验证码
在爬虫开发过程中,反爬虫机制成为了我们必须面对的挑战。本文将深入探讨Python爬虫中常见的反爬机制,并详细解析如何通过随机User-Agent生成、代理IP池搭建以及验证码识别来应对这些反爬策略。文章将包含完整的示例代码,帮助读者更好地理解和…...
MySql的安装及数据库的基本操作命令
1.MySQL的安装 1.1进入MySQL官方网站 1.2点击下载 1.3下拉选择MySQL社区版 1.4选择你需要下载的版本及其安装的系统和下载方式 直接安装以及压缩包 建议选择8.4.4LST LST表明此版本为长期支持版 新手建议选择红框勾选的安装方式 1.5 安装包下载完毕之后点击安装 2.数据库…...
VsCode导入时选择相对路径
自动导入时总是以db://开头了,而我们通常需要的是相对路径,对VsCode进行如下设置: 打开 VSCode 设置: 使用快捷键 Ctrl ,(Windows/Linux)或 Cmd ,(Mac)。 或者在菜单栏中选择 …...
计算机视觉|3D卷积网络VoxelNet:点云检测的革新力量
一、引言 在科技快速发展的背景下,3D 目标检测技术在自动驾驶和机器人领域中具有重要作用。 在自动驾驶领域,车辆需实时、准确感知周围环境中的目标物体,如行人、车辆、交通标志和障碍物等。只有精确检测这些目标的位置、姿态和类别&#x…...
创新监管,保障生产安全
在现代工业生产中,电气焊作业是不可或缺的一环,但同时也伴随着一定的安全风险。为了提高焊接作业的安全性,迪格特电子科技有限公司开发了电气焊安全作业管理平台,该平台通过智能化监管系统,实现了对焊机联网的全面监管…...
深入解析 C# 中的泛型:概念、用法与最佳实践
C# 中的 泛型(Generics) 是一种强大的编程特性,允许开发者在不预先指定具体数据类型的情况下编写代码。通过泛型,C# 能够让我们编写更灵活、可重用、类型安全且性能优良的代码。泛型广泛应用于类、方法、接口、委托、集合等多个方…...
AI数字人源码开发---SaaS化源码部署+PC+小程序一体化
#数字人#数字人分身#123数字人#数字人分身源码部署搭建 AI数字人源码开发步骤 确定功能需求:首先确定需要实现的功能和特性,包括语音识别、自然语言处理、人脸识别等功能。这些功能将构成AI数字人的核心功能。 开发AI数字人源码:使用合适的…...
Mysql-经典故障案例(1)-主从同步由于主键问题引发的故障
故障报错 Could not execute Write_rows event on table test.users; Duplicate entry 3 for key PRIMARY, Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY; the events master log mysql-bin.000031, end_log_pos 329 这是由于从库存在与主库相同主键值,…...
ElasticSearch 分词器介绍及测试:Standard(标准分词器)、English(英文分词器)、Chinese(中文分词器)、IK(IK 分词器)
ElasticSearch 分词器介绍及测试:Standard(标准分词器)、English(英文分词器)、Chinese(中文分词器)、IK(IK 分词器) ElasticSearch 分词器介绍及测试1. Standard Analyz…...
DeepSeek:如何通过自然语言生成HTML文件与原型图?
在当今快节奏的开发与设计环境中,快速生成HTML文件或原型图是每个开发者与设计师的迫切需求。虽然DeepSeek无法直接生成图片,但它却能够通过自然语言生成流程图、原型图以及交互式页面,甚至可以直接输出HTML代码。本文将详细介绍如何与DeepSe…...
【Redis】终极缓存四连杀:缓存预热、缓存击穿、缓存穿透、缓存雪崩,真的懂了吗?
🎯 前言 你有没有遇到过这种情况: 刚上线的新功能,所有用户一窝蜂冲进来,服务器被打爆?🚀(缓存预热)某个热点数据突然失效,数据库压力瞬间飙升,仿佛遭遇 DD…...
Java Spring MVC (2)
常见的Request Controller 和 Response Controller 的区别 用餐厅点餐来理解 想象你去一家餐厅吃饭: Request Controller(接单员):负责处理你的点餐请求,记录你的口味、桌号等信息。Response Controller(…...
Linux网络相关内容与端口
网络相关命令 ping命令测试连接状态 wget命令:非交互式文件下载器,可以在命令行内下载网络文件 使用ctrlc可以中止下载 curl命令:可以发送http网络请求,用于文件下载、获取信息等 其实和浏览器打开网站一样,cu…...
Spring Boot + MyBatis + MySQL:快速搭建CRUD应用
一、引言 1. 项目背景与目标 在现代Web开发中,CRUD(创建、读取、更新、删除)操作是几乎所有应用程序的核心功能。本项目旨在通过Spring Boot、MyBatis和MySQL技术栈,快速搭建一个高效、简洁的CRUD应用。我们将从零开始ÿ…...
日新F1、瑞研F600P 干线光纤熔接(熔接损耗最大0.03DB)
Ⅰ. 设备特性对比与实测验证 1. 日新F1(两马达)极限参数 切割角度:必须≤0.3(双边累计误差<0.6) ▶ 实测案例:切割0.35时,损耗波动达0.05-0.08dB(超干线标准)…...
分布式网络
分布式网络(Distributed Network)指的是一种计算机网络架构,其中计算资源(计算、存储、数据处理等)分布在多个物理或逻辑上的节点上,而不是集中在单一的服务器或数据中心中。这种架构的主要目标是提高系统的…...
【招聘精英】
我们公司是一个位于石家庄的一个科技型新型技术公司。主要做人力资源、用工、科技等方面。 有意向回石家庄的或者已经在石家庄的技术大咖、软件大牛、产品大佬、UI大神可以来了解一下。 现在招聘 高级前端开发 高级java开发 其他岗位也可以联系。 有意向的朋友可以私信我。 -…...
ESP8266 NodeMCU 与 Atmega16 微控制器连接以发送电子邮件
NodeMCU ESP8266 AVR 微控制器 ATmega16 的接口 Atmega16 是一款低成本的 8 位微控制器,比以前版本的微控制器具有更多的 GPIO。它具有所有常用的通信协议,如 UART、USART、SPI 和 I2C。由于其广泛的社区支持和简单性,它在机器人、汽车和自动化行业有广泛的应用。 Atmega1…...
MongoDB用户管理和复制组
用户管理 1、建用户时,use到的库就是此用户的验证库 2、登录时必须明确指定验证库才能登录 3、通常管理员用的验证库是admin,普通用户的验证库一般是所管理的库设置为验证库 4、如果直接登录到数据库,不进行use(示例ÿ…...
GoLang的select是什么?在什么时候场景下用
在 Go 语言中,select 是专门用于处理通道(Channel)多路复用的关键字,它可以同时监听多个通道的读写操作,并根据就绪的通道执行对应的逻辑。以下是 select 的用法和典型应用场景: 一、基本用法 select 语法…...
SQLAlchemy系列教程:集成Pydantic增强数据处理能力
本教程介绍如何将Pydantic用于数据验证,SQLAlchemy用于数据库操作,从而通过强大的数据处理能力增强Python应用程序。 介绍 在现代web开发中,确保数据的有效性和完整性至关重要。Pydantic和SQLAlchemy是两个功能强大的Python库,可…...
