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 GridSpec
 
fig = 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()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/982810.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

构建python3.8的docker镜像,以便解决: dlopen: /lib64/libc.so.6: version `GLIBC_2.28‘

1、简介 在使用pyinstaller打包工具打包应用为二进制的时候,出现了一个“”: dlopen: /lib64/libc.so.6: version GLIBC_2.28”的问题 2、解决方案 2.1、问题原因 由于使用了官方提供的镜像,而官方提供的镜像编译的机器上、glibc的版本过高&#xff…

音频3A测试--AEC(回声消除)测试

一、测试前期准备 一台录制电脑:用于作为近段音源和收集远端处理后的数据; 一台测试设备B:用于测试AEC的设备; 一个高保真音响:用于播放设备B的讲话; 一台播放电脑:用于模拟设备A讲话,和模拟设备B讲话; 一台音频处理器(调音台):用于录制和播放数据; 测试使用转接线若…

MATLAB程序介绍,三维环境下的IMM(交互式多模型),使用CV和CT模型,EKF作为滤波

本文所述的MATLAB代码为三维的交互式多模型(IMM)滤波器,结合了匀速直线运动(CV模型)和匀速圆周运动(CT模型)的状态估计。使用扩展卡尔曼滤波(EKF)来处理状态更新与观测数…

upload-labs详解(1-12)文件上传分析

目录 uploa-labs-main upload-labs-main第一关 前端防御 绕过前端防御 禁用js Burpsuite抓包改包 upload-labs-main第二关 上传测试 错误类型 upload-labs-env upload-labs-env第三关 上传测试 查看源码 解决方法 重命名,上传 upload-labs-env第四关…

第一:goland安装

GOPROXY (会话临时性),长久的可以在配置文件中配置 go env -w GOPROXYhttps://goproxy.cn,direct 长久的,在~/.bashrc文件中添加: export GOPROXYhttps://goproxy.cn,direct ----&#xff0d…

ASP使用EFCore和AutoMapper添加导航属性数据

目录 一、不使用自增主键 (1)下载AutoMapper的nuget包 (2)配置映射规则 (3)配置MappingProfile文件 (4)控制器编写添加控制器 (5)测试 二、使用自增主…

什么是Jmeter? Jmeter工作原理是什么?

第一篇 什么是 JMeter?JMeter 工作原理 1.1 什么是 JMeter Apache JMeter 是 Apache 组织开发的基于 Java 的压力测试工具。用于对软件做压力测试,它最初被设计用于 Web 应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源…

汽车零部件厂如何选择最适合的安灯系统解决方案

在现代制造业中,安灯系统作为一种重要的生产管理工具,能够有效提升生产线的异常处理效率,确保生产过程的顺畅进行。对于汽车零部件厂来说,选择一套适合自身生产需求的安灯系统解决方案尤为重要。 一、安灯系统的核心功能 安灯系统…

Ubuntu20.04双系统安装及软件安装(七):Anaconda3

Ubuntu20.04双系统安装及软件安装(七):Anaconda3 打开Anaconda官网,在右侧处填写邮箱(要真实有效!),然后Submit。会出现如图示的Success界面。 进入填写的邮箱,有一封Ana…

为解决局域网IP、DNS切换的Windows BAT脚本

一、背景 为解决公司普通人员需要切换IP、DNS的情况,于是搞了个windows下的bat脚本,可以对有线网络、无线网络进行切换设置。 脚本内容 echo off title 多网络接口IP切换工具:menu cls echo echo 请选择要配置的网络接口: echo echo 1. 有线网络&am…

【OMCI实践】wireshark解析脚本omci.lua文件(独家分享)

引言 omci.lua文件是Wireshark的OMCI协议解析插件的核心组件。它配合BinDecHex.lua,可以解析OMCI协议的数据包,提取出消息类型、受管实体标识、受管实体属性等关键信息,并以人类可读的形式显示在Wireshark的解码视图中,方便研发人…

JPA编程,去重查询ES索引中的字段,对已有数据的去重过滤,而非全部字典数据

一、背景 课程管理界面,查询前,需要把查询元数据给出。 学科列表、学段列表和分类列表,我们把它定义为查询元数据。 一般的业务需求是: 系统维护好多个字典,比如学科、学段等等,相当于属性库。 但是&…

vue3与react、 react hooks

一、Vue3新特性:setup、ref、reactive、computed、watch、watchEffect函数、生命周期钩子、自定义hooks函数、toRef和toRefs、shallowReactive 与 shallowRef、readonly 与 shallowReadonly、toRaw 与 markRaw、customRef、provide 与 inject、Fragment、Teleport、…

LINUX网络基础 [二] - 网络编程套接字,UDP与TCP

目录 前言 一. 端口号的认识 1.1 端口号的作用 二. 初识TCP协议和UDP协议 2.1 TCP协议 TCP的特点 使用场景 2.2 UDP协议 UDP的特点 使用场景 2.3 TCP与UDP的对比 2.4 思考 2.5 总结 三. 网络字节序 3.1 网络字节序的介绍 3.2 网络字节序思考 四. socket接口 …

基于SpringBoot+Vue的校园美食分享平台的设计与实现

获取源码:SpringBootVue的校园美食分享平台: 系统角色上分为管理员以及普通用户进行实现, 管理员主要负责整个网站后台的维护管理,包括首页、学校管理、美食类型管理、餐厅管理、美食分享管理、美食评论管理、系统信息、用户管理、角色管理和…

WPS条件格式:B列的值大于800,并且E列的值大于B列乘以0.4时,这一行的背景标红

一、选择数据区域 选中需要应用条件格式的区域(例如A2:E100 )。 二、打开条件格式 点击“开始”选项卡,选择“条件格式” > “新建规则”。 三、选择规则类型 选择“使用公式确定要设置格式的单元格”。 四、输入公式 在公式框中输入以…

自由学习记录(42)

可能会出现到后面没有教程可以看,走不动,,但还是尝试吧 过程远比想象的要多 那连Live2d的这些脚本怎么控制的都要了解一下 ------------ 文件类型和扩展名 | 编辑手册 | Live2D Manuals & Tutorials 全部导入之后 在这下载SDK Live2D…

结构型模式---享元模式

概念 享元模式是一种结构型设计模式,他摒弃了在每个对象中保存所有数据的方式,通过共享多个对象所共有的相同状态,让你能在有限的内存容量中载入更多对象。享元模式将原始类中的数据分为内在状态数据和外在状态数据。 内在状态:就…

[内网安全] Windows 本地认证 — NTLM 哈希和 LM 哈希

关注这个专栏的其他相关笔记:[内网安全] 内网渗透 - 学习手册-CSDN博客 0x01:SAM 文件 & Windows 本地认证流程 0x0101:SAM 文件简介 Windows 本地账户的登录密码是存储在系统本地的 SAM 文件中的,在登录 Windows 的时候&am…

类和对象—多态—案例2—制作饮品

案例描述: 制作饮品的大致流程为:煮水-冲泡-倒入杯中-加入辅料 利用多态技术实现本案例,提供抽象制作产品基类,提供子类制作咖啡和茶叶 思路解析: 1. 定义抽象基类 - 创建 AbstractDrinking 抽象类,该类…