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()

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于GeoTools的GIS专题图自适应边界及高宽等比例生成实践

目录 前言 一、原来的生成方案问题 1、无法自动读取数据的Bounds 2、专题图高宽比例不协调 二、专题图生成优化 1、直接读取矢量数据的Bounds 2、专题图成果抗锯齿 3、专题成果高宽比例自动调节 三、总结 前言 在当今数字化浪潮中,地理信息系统(…

aardio - 虚表 + 数据库 操作例程

import godking.vlistEx; import fonts.fontAwesome import win.ui; /*DSG{{*/ mainForm win.form(text"客户信息管理";right967;bottom556;border"none") mainForm.add( addData{cls"plus";text\uF067 新增;left8;top80;right77;bottom110;bgc…

SQLAlchemy系列教程:理解SQLAlchemy元数据

SQLAlchemy是Python开发人员的强大ORM工具。SQLAlchemy中的元数据是对象-关系映射配置的集合,允许开发人员无缝地定义和使用数据库模式。 使用元数据 SQLAlchemy中的元数据充当各种数据库描述符(如表、列和索引)的容器。这使开发人员能够通…

Soul 1.4.60 | 清爽版浏览器,内置广告拦截与多功能集成,保护隐私

Soul浏览器是一款专注于内容浏览体验的安卓浏览器,去除广告与追踪器,集成视频下载、PDF查看、手势控制等实用功能。支持无痕模式与黑暗主题,内置清洁器自动过滤广告,优化网页加载速度,提供流畅的浏览体验与隐私保护。支…

最短路问题

Problem - D - Codeforces(最短路,反向bfs) 题目: 思路: bfs版本:参考自Codeforces Round 1002 (Div. 2) A - D - 知乎 代码: dijstra: void solve() {int n;cin>>n;int s…

【论文阅读】多模态——LSeg

文献基本信息 标题:Language-Driven Semantic Segmentation作者:Boyi Li、Kilian Q. Weinberger、Serge Belongie、Vladlen Koltun、Ren Ranftl单位:Cornell University、University of Copenhagen、Apple、Intel Labs会议/期刊:…

Docker Desktop常见问题记录

1.docker pull报错,无法连接https://registry-1.docker.io/v2/ 报错信息如下: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection(Client.Timeout exceeded …

Java 大视界 -- Java 大数据在智能政务公共服务资源优化配置中的应用(118)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

Python快捷手册

Python快捷手册 后续会陆续更新Python对应的依赖或者工具使用方法 文章目录 Python快捷手册[toc]1-依赖1-词云小工具2-图片添加文字3-BeautifulSoup网络爬虫4-Tkinter界面绘制5-PDF转Word 2-开发1-多线程和队列 3-运维1-Requirement依赖2-波尔实验室3-Anaconda3使用教程4-CentO…

Javaweb后端spring事务管理 事务四大特性ACID

2步操作,只能同时成功,同时失败,要放在一个事务中,最后提交事务或者回滚事务 事务控制 事务管理进阶 事务的注解 这是所有异常都会回滚 事务注解 事务的传播行为 四大特性

AI绘画软件Stable Diffusion详解教程(2):Windows系统本地化部署操作方法(专业版)

一、事前准备 1、一台配置不错的电脑,英伟达显卡,20系列起步,建议显存6G起步,安装win10或以上版本,我的显卡是40系列,16G显存,所以跑大部分的模型都比较快; 2、科学上网&#xff0…

光伏电池输出功率模型

1.光伏电池输出功率 1.1光伏电池的效率 温度对光伏电池/组件电效率的影响可以追溯到温度对电流I和电压V的影响,因为最大功率表达式为: 其中,Pm为最大输出功率;Vm为最大输出功率点电压;Im为最大输出功率点电流&#xf…

【大模型基础_毛玉仁】1.4 语言模型的采样方法

【大模型基础_毛玉仁】1.4 语言模型的采样方法 1.4 语言模型的采样方法1.4.1 概率最大化方法1)贪心搜索(GreedySearch)2)波束搜索(BeamSearch) 1.4.2 随机采样方法1)Top-K 采样2)Top…

MyBatis - XML CRUD 其他查询

1. XML 配置文件 使用 MyBatis 操作数据库的方式有两种: 注解 (在注解中定义 SQL 语句)XML 配置文件 (在 XML 文件中定义 SQL 语句) 在上一篇博客中, 已经讲解了如何使用注解操作数据库, 本篇文章来讲解如何使用 XML 进行 MyBatis 开发. 使用 XML 的步骤, 和使用注解的步骤…

DeepSeek + 飞书多维表格搭建你的高效工作流

众所周知,大模型DeepSeek擅长于处理大规模语言模型推理任务,特别是在成本降低和思维链推理方面表现出色‌,我们一般把大模型必做我们的大脑,但是一个人不能只有大脑,还需要其他输入输出以及操作支配的眼耳鼻嘴手足等。…

跨域-告别CORS烦恼

跨域-告别CORS烦恼 文章目录 跨域-告别CORS烦恼[toc]1-参考网址2-思路整理1-核心问题2-个人思考3-脑洞打开4-个人思考-修正版1-个人思考2-脑洞打开 3-知识整理1-什么是跨域一、同源策略简介什么是源什么是同源是否是同源的判断哪些操作不受同源策略限制跨域如何跨域 二、CORS 简…

基于Django创建一个WEB后端框架(DjangoRestFramework+MySQL)流程

一、Django项目初始化 1.创建Django项目 Django-admin startproject 项目名 2.安装 djangorestframework pip install djangorestframework 解释: Django REST Framework (DRF) 是基于 Django 框架的一个强大的 Web API 框架,提供了多种工具和库来构建 RESTf…

基于多目标向日葵优化算法(Multi-objective Sunflower Optimization,MOSFO)的移动机器人路径规划研究,MATLAB代码

一、机器人路径规划介绍 移动机器人路径规划是机器人研究的重要分支,是对其进行控制的基础。根据环境信息的已知程度不同,路径规划分为基于环境信息已知的全局路径规划和基于环境信息未知或局部已知的局部路径规划。随着科技的快速发展以及机器人的大量…

cursor使用经验分享(java后端服务开发向)

前言 cursor是一款基于vscode,并集成AI能力的代码编辑器,其功能包括但不限于代码生成及补全、AI对话(能够直接将代码环境作为上下文)、即时应用建议等等,是一款面向未来的代码编辑器。 对于vscode,最先想…

【Java学习】异常

一、异常的处理过程 异常类的似复刻变量被throw时,会立即中止当前所在的这层方法,即当层方法里throw异常类似复刻变量之后的语句就不会执行了,如果throw异常语句在当层方法中被try{}包裹,则中止就先发生被包裹在了try{}层&#xf…