1.绘制子图的方式

  1. pyplot中函数subplot
  2. Figure类中的函数add_subplot
  3. pyplot中函数subplots
fig, ax = plt.subplots(nrows=1, ncols=1, *, sharex=False, sharey=False,
 squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw)
功能:绘制多个子图,可以一次生成多个
参数:nrows和ncols:整数,表示子图的行数和列数。
      sharex和sharey:布尔值或字符串,表示是否共享x轴或y轴的属性。            可选值有TrueFalse'row''col'
      squeeze:布尔值,默认为True。当子图只有一个时,返回一个Axes对象
而不是一个数组。False时返回一个二维数组
      width_ratios:列宽比例的序列,用于调整各列的宽度比
      height_ratios:行高比例的序列,用于调整各行的高度比
      subplot_kw:字典类型,可选参数。把字典的关键字传递给add_subplot()
来创建每个子图。
      gridspec_kw:字典类型,可选参数。把字典的关键字传递给GridSpec构造函数
创建子图放在网格里(grid)。**fig_kw:把所有详细的关键字参数传给figure()函数。
返回值:fig:这是整个图形的对象,可以对其进行全局设置,如标题、大小等。
        axes:这是一个数组,包含所有的子图。数组的形状由nrows和ncols决定。
例如,如果 nrows=2 和 ncols=3,则 axes 将是一个 2x3 的数组,每个元素都是一个
子图对象。
# 绘制子图,返回值包含Figure对象和Axes对象,Axes对象是一个数组,可以通过下标进行访问子图
fig, ax = plt.subplots(2, 2)ax[0, 0].plot([2,3], [4,5])
ax[0, 1].plot([1,1], [2,1])fig.suptitle('sub')plt.show()

2.pyplot中常用函数

gcf

功能:获取当前窗口Figure对象如果没有活动的图形,这个函数将创建一个新的图形,并将其作为当前活动的图形。通过此函数获取了当前图形的Figure对象后,可以调用Figure类中的相关操作

gca

功能:获取获取当前图形中的Axes对象

x = np.arange(0, 2*np.pi, 0.1)
y = np.sin(x)
plt.plot(x, y, label='sin')
# 获取Figure对象
fig = plt.gcf()
fig.suptitle('sin')
# 获取Axes对象
ax = plt.gca()
ax.set_xlabel('x')plt.show()
savefig

matplotlib.pyplot 模块中的 savefig 函数用于将当前图形保存到文件中。

plt.savefig(*args, **kwargs)

参数:

        fname:字符串或类似文件的对象,指定保存文件的路径或文件名。可以是相对路径或绝对路径。如果文件扩展名缺失,将使用默认格式(通常是 PNG)。

        dpi:可选,指定保存图像的dpi(每英寸点数)。默认值是figure.dpi。

        format:可选,指定文件格式(如 'png', 'pdf', 'svg', 'ps', 'eps', ...)。如果省略,将使用文件扩展名推断格式。

        bbox_inches:可选,指定裁剪框,可以是 'tight''standard' 或一个 Bbox 对象。默认为 'standard'

                tight:保存的图形文件中不会有不必要的空白边缘,使得图形更加紧凑和整洁

        pad_inches:可选,指定边框填充量(以英寸为单位)。默认为 0.1。

        facecolor:可选,指定图像的背景颜色。默认为 'w'(白色)。

        edgecolor:可选,指定图像边框的颜色。默认为 'w'(白色)。

        orientation:可选,指定页面方向('portrait''landscape'),仅对保存为 PDF 文件时有效。

        papertype:可选,指定纸张类型(如 'a4', 'letter'),仅对保存为 PDF 文件时有效。

        format_kwargs:可选,其他与格式相关的关键字参数。

        metadata:可选,指定要写入文件的元数据。

        pil_kwargs 和 pdf_kwargs:可选,特定于 PIL 或 PDF 格式的参数。

x = np.arange(0, 2*np.pi, 0.1)
y = np.sin(x)
plt.plot(x, y, label='sin')y = np.cos(x)
plt.plot(x, y, label='cos')
# 隐藏坐标轴
plt.axis('off')
# 保存图片
plt.savefig('./sin.png')
imsave

用于将图像数据保存到磁盘上的函数

matplotlib.pyplot.imsave(fname, arr, **kwargs)

参数:fname:保存图像的文件名,可以是相对路径或绝对路径。

        arr:表示图像的NumPy数组。

        kwargs:可选参数,用于指定保存的图像格式以及图像质量等参数。

imsave和savefig区别

        savefig可以绘制图像保存文件包含坐标标题图例

        imsave是二维或三维数据保存图像文件不含坐标没法直接保存plot等绘制图像

arr = np.array([[1,2,3,1], [2,3,1,2]])
# 绘制二维或三维数据图像,通过cmap进行颜色映射
plt.imshow(arr, cmap='gray')
plt.imsave('./test.png', arr)
plt.show()

imshow

        imshow() 函数是 Matplotlib.pyplot 库中的一个函数,它常用于绘制二维的灰度图像或彩色图像,也可以用于绘制矩阵、热力图、地图等。

imshow(X, cmap=None, norm=None, aspect=None, interpolation=None, alpha=None, vmin=None, vmax=None, origin=None, extent=None, shape=None, filternorm=1, filterrad=4.0, imlim=None, resample=None, url=None, *, data=None, **kwargs)

参数:X:图像数据。这通常是一个二维数组(灰度图像)或一个三维数组(彩色图像,其中第三维是颜色通道)。对于二维数组,可以使用 cmap 参数来指定颜色映射

        cmap:颜色映射。用于控制图像中不同数值所对应的颜色。默认颜色是'viridis',也可以设置其他颜色,如`gray`、`hot`、`jet`、'binary'

        norm:用于将数据值标准化到 [0, 1] 区间。以便与颜色映射一起使用。如果为 None,则数据将直接用于颜色映射。

        aspect:控制图像宽高比,'auto'(默认,根据数据形状自动调整)、'equal'(使像素为正方形)或数字(指定宽高比)

        interpolation:插值方法。用于控制图像的平滑程度和细节程度。可以选择`nearest`、`bilinear`、`bicubic`等插值方法。

        alpha:图像透明度。取值范围为0~1

        origin:坐标轴原点的位置。可以设置为`upper`或`lower`。

        extent:控制显示的数据范围。可以设置为`[xmin, xmax, ymin, ymax]`。

        vmin、vmax:控制颜色映射的值域范围。

       filternorm 和 filterrad:用于图像滤波的对象。可以设置为`None`、`antigrain`、`freetype`等。

        imlim: 用于指定图像显示范围。

        resample:用于指定图像重采样方式。

        url:用于指定图像链接。

plt.colorbar()

功能:显示颜色柱

imread

        imread() 方法是 Matplotlib 库中的一个函数,用于从图像文件中读取图像数据。

imread() 方法返回一个 numpy.ndarray 对象,其形状是 (nrows, ncols, nchannels),表示读取的图像的行数、列数和通道数:

  1. 如果图像是灰度图像,则 nchannels 为 1。
  2. 如果是彩色图像,则 nchannels 为 3 或 4,分别表示红、绿、蓝三个颜色通道和一个 alpha 通道;为3时表示红绿蓝,为4时表示红绿蓝、透明度。

matplotlib.pyplot.imread(fname, format=None)

参数:fname:指定了要读取的图像文件的文件名或文件路径,可以是相对路径或绝对路径。

        format:参数指定了图像文件的格式,如果不指定,则默认根据文件后缀名来自动识别格式。

返回值:numpy.ndarray 对象

arr = plt.imread('map.png')
plt.imshow(arr)
plt.show()
close

plt.close(fig=None)

功能:该函数用于关闭一个或多个打开的图形窗口,释放资源

参数:fig:指定要关闭的图形,可以是Figure对象,也可以是图形对应的整数

        all:关闭所有图形,如果参数省略,关闭当前图像

Line2D  类函数

        plt.plot函数的返回值表示包含一个或多个 Line2D 对象(有多条线时会返回多个Line2D对象)

        Line2D 是 Matplotlib 中用于表示二维线条的类。通过返回 Line2D 对象,你可以访问和修改线条的各种属性,例如颜色、线型、标签等。这使得 plt.plot() 不仅仅是绘制图形,还可以让你对绘制的线条进行进一步的定制。

get_label

        该方法用于获取图像标签(参数中指定的label值)。这个方法通常用于获取已经设置好的标签,以便于后续的检查或修改.

set_data

        该函数功能为用于动态更新线条的 x 和 y 数据。主要在需要实时更新图形(例如动画)的场景中。

Line2D.set_data(xdata, ydata)

        调用该方法后,图形会根据新的数据重新绘制。它不会自动刷新图形,但可以与 plt.draw() 或 plt.pause() 等方法结合使用,以实现动态更新的效果。

pause

用于在绘图时暂停程序执行,并在指定的时间间隔后继续执行。它常用于动态更新图形或创建简单的动画效果。

函数的作用:

  • 暂停程序:plt.pause(interval) 会暂停程序的执行,暂停的时间由参数 interval(单位为秒)决定。
  • 刷新图形窗口:在暂停期间,plt.pause() 会强制刷新图形窗口,显示最新的图形内容。这使得它特别适合用于动态更新图形的场景。

函数原型:

pyplot.pause(interval)
参数:interval:时间,秒
x = np.arange(0, 2*np.pi, 0.1)
y = np.sin(x)
ld, = plt.plot(x, y, label='sin')# 获取图像中label数据
# ret = ld.get_label()
# print(ret)y = np.cos(x)
# 根据指定的时间暂停程序
plt.pause(5)
# 修改原图像的数据
ld.set_data(x, y)plt.show()

3.绘制子图网格

        使用模块gridspec中的函数GridSpec绘制

        在 Matplotlib 中,GridSpec 对象提供了一种灵活的方式来创建子图网格(subplots grid),允许子图跨越多个行和列,以及具有不均匀的行高和列宽。

from matplotlib.gridspec import GridSpec

GridSpec(nrows, ncols, figure=None, left=None, right=None, bottom=None, top=None, wspace=None, hspace=None, width_ratios=None, height_ratios=None, w_pad=None, h_pad=None)

参数:nrows: int子图网格的行数。

        ncols: int子图网格的列数。

        figure: matplotlib.figure.Figure,

                   optional,

                   default: None

                   指定的图形对象。如果未提供,则默认创建一个新的图形对象。

        left: float, optional, default: None子图网格左侧的相对位置(01 的比例)。如果未指定,则使用默认的左边界。

        right: float, optional, default: None子图网格右侧的相对位置(01 的比例)。如果未指定,则使用默认的右边界。

        bottom: float, optional, default: None子图网格底部的相对位置(01 的比例)。如果未指定,则使用默认的底边界。

        top: float, optional, default: None子图网格顶部的相对位置(01 的比例)。如果未指定,则使用默认的顶边界。

        wspace: float or None, optional, default: None子图之间的水平间距(以英寸为单位)或作为子图宽度的比例。如果未指定,则使用默认的间距。

        hspace: float or None, optional, default: None子图之间的垂直间距(以英寸为单位)或作为子图高度的比例。如果未指定,则使用默认的间距。

        width_ratios: list of floats, optional, default: None

指定每一列的宽度比例。如果指定,则 ncols 必须与列表长度匹配。

        height_ratios: list of floats, optional, default: None

指定每一行的高度比例。如果指定,则 nrows 必须与列表长度匹配。

        w_pad: float, optional, default: None子图之间的水平填充(以英寸为单位)。如果未指定,则使用默认的填充。

        h_pad: float, optional, default: None子图之间的垂直填充(以英寸为单位)。如果未指定,则使用默认的填充。

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.gridspec import GridSpec
# import matplotlib.gridspec as gs
fig = plt.figure()# 添加子图网格
gs = GridSpec(2, 3)
# 在第一行添加三个子图
fig.add_subplot(gs[0, 0])
fig.add_subplot(gs[0, 1])
fig.add_subplot(gs[0, 2])
# 在第二行添加一个子图
fig.add_subplot(gs[1, :])plt.show()

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

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

相关文章

C# 编程out 参数需要在函数体内部初始化,然后引用的时候无需初始化

核心规则方法内部必须初始化:在方法体中,必须在方法返回前对 out 参数显式赋值(未赋值会导致编译错误)调用时无需初始化:调用方传递 out 参数前不需要初始化变量(可直接使用未赋值的局部变量)下…

【Redis在数据治理与数据隐私保护策略中的优化】

## Redis的自动补全功能:用户体验的无缝之助Redis作为一款高效的开源缓存数据库,始终在用户体验优化方面走在前列。其自动补全功能的引入,为用户带来了全新的搜索体验。这种功能不仅提升了搜索效率,更为用户提供了更智能化的服务。…

Sklearn 机器学习 异常值检测 局部异常因子算法LOF

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Sklearn 机器学习异常值检测:局部异常因子算法(LOF) 在实际的机器学习任务中,异常…

衡量机器学习模型的指标

为了进一步了解模型的能力,我们需要某个指标来衡量,这就是性能度量的意义。有了一个指标,我们就可以对比不同的模型了,从而知道哪个模型相对好,哪个模型相对差,并通过这个指标来进一步调参以逐步优化我们的…

Day24|学习前端CSS

HTML把一大段杂乱无章的话,调整变成文章格式颜色rgba,16进制CSS选择器(从上往下,权重越低)类选择器#(为多个元素设计相同样式伪类选择器:和类选择器.元素选择器p,div,li通…

初识数据结构——优先级队列(堆!堆!堆!)

数据结构专栏 ⬅(click) 今天就让我们来聊聊这个让无数程序员又爱又恨的数据结构——堆(Heap)。 一、优先级队列 vs 普通队列 特性普通队列优先级队列出队顺序FIFO(先进先出)按优先级高低(默认小的先出)底…

嵌入式学习day25

fwrite&#xff1a;fread&#xff1a;fread/fwrite&#xff1a;拷贝图片&#xff1a;#include <stdio.h>int main(void) {FILE *fsrc NULL;FILE *fdst NULL;char tmpbuff[4096] {0};size_t nret 0;fsrc fopen("src.jpg", "r");if (NULL fsrc){…

2025年中科院2区红杉优化算法Sequoia Optimization Algorithm-附Matlab免费代码

1. 简介 提出了红杉优化算法&#xff08;SequoiaOA&#xff09;&#xff0c;这是一种受红杉森林生态系统自我调节动力学和弹性启发的新型元启发式方法&#xff0c;不同于传统的奇异生物学或现象学灵感。开发一个全面的生态系统驱动框架&#xff0c;包括数学建模、系统分析和通过…

【C#】从 Queue 到 ConcurrentQueue:一次对象池改造的实战心得

背景 最近在做一个图像处理的 WPF 项目&#xff0c;底层使用 Halcon 的 HObject 来存放图像。为了减少频繁创建和释放对象带来的开销&#xff0c;我实现了一个对象池&#xff0c;用来存放 HObject&#xff0c;方便后续流程复用。 最初的实现用的是 .NET 自带的 Queue<T>&…

深度解析 AS32S601 芯片 CAN Bus Off 机制:从原理到应用的全流程指南

一、前言在汽车电子、工业自动化等众多领域&#xff0c;CAN 总线作为一种可靠的通信协议被广泛应用。而 AS32S601 芯片凭借其卓越的性能和可靠性&#xff0c;在这些领域也发挥着重要作用。其中&#xff0c;CAN Bus Off 功能作为 CAN 总线通信中的关键错误处理机制&#xff0c;对…

PyCharm Community 2024.2.3.exe 安装教程(详细步骤,附安装包下载)

​1. 下载安装包​ 安装下载地址&#xff1a;https://pan.quark.cn/s/ca11cb817ee5&#xff0c;你已经下载好了 pycharm-community-2024.2.3.exe 这个文件&#xff08;通常是从 JetBrains 官网下的&#xff09;。双击这个 .exe 文件开始安装。 ​2. 开始安装向导​ 双击后&am…

JAVA:SpringBoot 集成 Selenium 实现高效爬虫

🌐 1、简述 在互联网数据采集中,传统基于 Jsoup 或 HttpClient 的爬虫方案面对复杂 JavaScript 渲染页面时经常力不从心。此时,Selenium WebDriver 提供了更强大的模拟真实浏览器行为能力,成为爬取动态网站的利器。 为了绕过反爬机制,结合 IP 代理池 是提升稳定性和并发…

终端安全检测和防御技术

目录 1. 终端安全风险 2. 终端安全检测和防御技术 3. 网关杀毒技术 3.1 计算机病毒工作步骤 3.2 杀毒防御产品 3.3 网关杀毒功能优势 3.4 网关杀毒实现方式 4.僵尸网络检测和防御技术 4.1 僵尸网络 4.2 僵尸网络的形成过程&#xff08;APT场景下&#xff09; 4.3 检测…

Java缓冲流

字节缓冲流&#xff1a;原理&#xff1a;底层自带长度为8192的缓冲区提高性能拷贝文件一次读一个字节一次读一个字节数组字节缓冲流的读写原理字符缓冲流&#xff1a;特定方法字符缓冲输入流基本写法输入所有数据字符缓冲流输出总结

web服务器tomcat内部工作原理以及样例代码

目录 一、Tomcat 运行原理与 Servlet 机制 1、为什么 Java Web 项目需要 Tomcat 2. 进程模式 vs 线程模式 3、Servlet / Controller 是怎么跟 Tomcat 对接的? 4、java反射与代理机制 ※--高级知识点 (1)原理 (1)样例:用反射和注解模拟 Tomcat 处理 HTTP 请求时,动…

AI赋能IT服务管理:从被动响应到智能驱动的跃迁

过去十年&#xff0c;IT服务管理&#xff08;ITSM&#xff09;经历了从纸质工单到数字化平台的变革&#xff0c;但无论工具多么先进&#xff0c;大多数IT团队依然面临着相同的困境&#xff1a;事件处理速度跟不上业务变化人工重复操作占用大量时间数据虽多&#xff0c;却缺乏可…

云计算-K8s 核心组件之CronJob、RBAC、HPA ,LimitRange、DaemonSet、nodeSelector如何作战?

目录 1.CronJob管理 2.RBAC管理 3.HPA管理 4.健康检查 5.LimitRange管理 6.DaemonSet管理 7.nodeSelector管理 简介 1. CronJob&#xff08;定时任务控制器&#xff09; 按固定时间间隔&#xff08;类似 Linux cron&#xff09;自动触发一次性任务&#xff08;Job&#…

数据分析学习总结之实例练习(双十一淘宝美妆)

本次通过对双十一淘宝美妆数据的分析实践&#xff0c;我系统掌握了数据处理与分析的完整流程&#xff0c;从数据初步认知到深度挖掘&#xff0c;再到可视化呈现与结论提炼&#xff0c;收获颇丰。以下是具体的学习总结&#xff1a;一、数据初步了解&#xff1a;奠定分析基础在分…

如何评估一个需求的业务价值

要科学、全面地评估一个需求的业务价值&#xff0c;核心在于建立一个多维度的、从战略到财务、从客户到风险的“价值罗盘”&#xff0c;并运用这套罗盘&#xff0c;对需求进行系统性的、数据驱动的量化与定性分析。一套成熟的价值评估体系&#xff0c;其构建必须涵盖五大关键视…

day38_2025-08-12

一、 图像数据的介绍 1.1 灰度图像 从这里开始我们进入到了图像数据相关的部分&#xff0c;也是默认你有之前复试班计算机视觉相关的知识&#xff0c;但是一些基础的概念我仍然会提。 昨天我们介绍了minist这个经典的手写数据集&#xff0c;作为图像数据&#xff0c;相较于结构…