MATLAB多级分组绘图及图例等细节处理 ; MATLAB画图横轴时间纵轴数值按照不同sensorCode分组画不同sensorCode的曲线

平时研究需要大量的绘图Excel有时候又臃肿且麻烦
尤其是当处理大量数据时可能会拖死Windows

示例代码及数据量展示
在这里插入图片描述
在这里插入图片描述
因为数据量是万级别的折线图也变成"柱状图"了, 不过还能看出大致趋势! 横轴是时间纵轴是传感器数值图例是传感器所在深度

% data = readtable('C:\Users\sdgs\滨大近一个月数据.xlsx')% 获取所有的depth值
sensorCodes = unique(data.depth);% 获取所有的时间戳
timestamps = unique(data.id);% 创建一个图形
figure;
hold on;% 遍历每个depth
for i = 1:length(sensorCodes)code = sensorCodes(i);% 创建一个过滤器,只选择当前depth的数据filter = data.depth == code;% 获取当前depth的数据codeData = data(filter, :);% 创建一个向量来存储当前depth的humidityhumidityValues = zeros(1, length(timestamps));% 遍历每个时间戳for j = 1:length(timestamps)timestamp = timestamps(j);% 在当前时间戳上获取对应的humidity值filter = codeData.id == timestamp;humidity = codeData(filter, :).humidity;% 如果有对应的humidity值,则保存到humidityValues中if ~isempty(humidity)humidityValues(j) = humidity;endend% 绘制曲线plot(timestamps, humidityValues, 'DisplayName', ['depth: ' num2str(code)]);
endxlabel('时间');
ylabel('数值');
legend('show');
title('不同depth的曲线图');hold off;

代码中都有注释, 可以直接执行也可以往下看
画图横轴时间纵轴数值按照不同sensorCode分组画不同sensorCode的曲线

思路大致就是两次for循环的遍历, 因为要目标值还要进行分组
第一次遍历是要分的组就是代码中的depth ,第二次遍历就是拿到这个depth在对应时间的值

在一开始我们遍历了Excel中的数据, 应该叫读取了更加合适

然后取出相关的值并用unique进行去重

接着就是卡住的地方
用到了过滤器的概念, 对数据过滤后拿过滤玩的数据获取目标值, 然后初始化一个向量长度设置和X轴一致, 这样可以避免越界异常

下标索引必须为正整数类型或逻辑类型。出错 table/dotParenReference (line 82)b = b(rowIndices);出错 plotLine (line 19)time = data.id(idx);

然后开始根据depth, 遍历时间戳如果有值就塞到中间变量中

总结: 外部循环遍历depth内部循环根据时间戳遍历值并用变量做存储!

等到值都有变量存了就可以拿变量进行绘图了
这一步往往会遇到类型的问题,因为plot只能绘制数字类型, 如果数据中有字母活其他字符 , MATLAB会给这个数据加上引号或者其他修饰这样绘图时就会有报错

细节

生成的默认的图例很难分辨, 这时候就要在结果上做文章了

1-设置图例的样子

  • plot(x, y1, '-rO'):绘制以 x 为横轴,y1 为纵轴的曲线,线型为实线(‘-’),颜色为红色(‘r’),标记为圆圈(‘O’)。
  • plot(x, y2, '-kX'):绘制以 x 为横轴,y2 为纵轴的曲线,线型为实线(‘-’),颜色为黑色(‘k’),标记为叉号(‘X’)。
  • plot(x, y3, ':b*'):绘制以 x 为横轴,y3 为纵轴的曲线,线型为点线(‘:’),颜色为蓝色(‘b’),标记为星号(‘*’)。
    在这里插入图片描述

2-设置背景色比较懒就都用上面这一个图了

set(lg1,‘TextColor’,‘red’,‘Color’,‘yellow’);

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

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

相关文章

Network AIS Receiver R400N

目录 Introduction OVERVIEW BASIC FEATURES APPLICATIONS SPECIFICATIONS Introduction OVERVIEW The R400N provides a method of monitoring the position, speed and heading of AIS vessels within VHF range. It can decode of Class A, Class B, Aids to Navigat…

鸿蒙OS开发实例:【Web网页】

背景 HarmonyOS平台通过Web控件可支持网页加载展示,Web在中是作为专项参考的。 本篇文章将从Android和iOS平台研发角度出发来实践学习API功能 说明 整个示例是以HarmonyOS开发文档网址作为加载目标页面布局增加了三个按钮“后退”,“前进”&#xff…

2024.04.01-2810.故障键盘

题目链接 【题目描述】 你的笔记本键盘存在故障,每当你在上面输入字符 ‘i’ 时,它会反转你所写的字符串。而输入其他字符则可以正常工作。 给你一个下标从 0 开始的字符串 s ,请你用故障键盘依次输入每个字符。 返回最终笔记本屏幕上输出的字…

TransmittableThreadLocal 问题杂记

0、前言 TransmittableThreadLocal,简称 TTL,是阿里巴巴开源的一个Java库,它能够实现ThreadLocal在多线程间的值传递,适用于使用线程池、异步调用等需要线程切换的场景,解决了ThreadLocal在使用父子线程、线程池时不能…

单唇油封和双唇油封的区别

在机械工程领域,油封在维持各种系统的效率和完整性方面发挥着至关重要的作用。在不同类型的油封中,单唇密封件和双唇密封件作为两种不同的变体脱颖而出,每种都有其独特的特性和应用。了解这些密封件之间的差异对于选择较适合特定工程要求的选…

2022 Tesla AI Day -特斯拉自动驾驶FSD的进展和算法软件技术之数据以及虚拟

2022 Tesla AI Day -特斯拉自动驾驶FSD的进展和算法软件技术之数据以及虚拟 附赠自动驾驶学习资料和量产经验:链接 人工智能算法犹如电影的主演,我们很多时候看电影只看到主演们的精彩,但其实电影的创意和呈现都来自于背后的导演和制片等团队…

数论与线性代数——整除分块【数论分块】的【运用】【思考】【讲解】【证明(作者自己证的QWQ)】

文章目录 整除分块的思考与运用整除分块的时间复杂度证明 & 分块数量整除分块的公式 & 公式证明公式证明 代码code↓ 整除分块的思考与运用 整除分块是为了解决一个整数求和问题 题目的问题为: ∑ i 1 n ⌊ n i ⌋ \sum_{i1}^{n} \left \lfloor \frac{n}{…

让工作自动化起来!无所不能的Python

让工作自动化起来!无所不能的Python 一、Python是办公自动化的重要工具二、Python是提升职场竞争力的利器三、Python是企业数字化的重要平台四、Python是AI发展的重要通道之一内容简介作者简介前言读者对象如何阅读本书购买链接参与方式 随着我国企业数字化和信息化…

metasploit使用及内网笔记

1 基本操作 Metasploit就是一个漏洞框架。它的全称叫做The Metasploit Framework,简称叫做MSF。Metasploit作为全球最受欢迎的工具,不仅仅是因为它的方便性和强大性,更重要的是它的框架。它允许使用者开发自己的漏洞脚本,从而进行…

Unix 网络编程, Socket 以及bind(), listen(), accept(), connect(), read()write()五大函数简介

Unix网络编程是针对类Unix操作系统(包括Linux、BSD以及其他遵循POSIX标准的操作系统)进行网络通信开发的技术领域。网络编程涉及创建和管理网络连接、交换数据以及处理不同层次网络协议栈上的各种网络事件。在Unix环境中,网络编程通常涉及到以…

前后端数据交互

前后端数据交互 网页上所有的数据都是来源于后端,比如淘宝或者京东的秒杀,用户的登陆或者注册,这些都需要借助于后端来存储数据。我们前端需要做的就是把数据发送给后端,后端发送给我们的数据我们要拿到把它显示到页面上&#xff…

理解数学概念——整函数(复平面可积函数)

1. 提出问题 在复分析中,出现一个概念“entire function”,在汉译的一些数学资料和一些数学术语辞典中,将这个术语译为“整函数”。为什么这样翻译?只因“entire”这个单词具有“整体、完全”的词义。但这样翻译是非常不严谨的,也没有体现出…

IBM发布CEO生成式AI行动指南:将生成式AI视为迫切需要加以保护的重要平台

生成式AI催生了一系列新兴网络威胁。黑客获得了更多的机会来利用漏洞,也可以通过更多的方式来执行恶意活动。 幸运的是,反之亦然:生成式AI可以加强企业的防御能力。在短期内,生成式AI将让曾经一度繁重的安全流程变得更加高效。通过…

leetcode131分割回文串

递归树 下面这个代码是遍历处所有的子串 #include <bits/stdc.h> using namespace std; class Solution { public:vector<vector<string>> vvs;vector<string> vs;vector<vector<string>> partition(string s) {dfs(0,s);return vvs;}vo…

【Linux】进程 基础概念

目录 1.进程的基本概念 1.1基本概念 1.11进程与程序的区别: 1.12并发与并行的区别 1.2进程的状态及转换 1.3描述进程—–PCB task_struct -- PCB的一种 1.4查看进程 ps 命令 top 命令 2.进程创建 3.进程状态 ps aux / ps axj 命令 进程状体具体讲解 R运行状态 S…

【Pt】马灯贴图绘制过程 01-制作基础色

目录 一、导入模型并烘焙 二、制作基础底漆 &#xff08;1&#xff09;底漆层 &#xff08;2&#xff09;水痕层 &#xff08;3&#xff09;指纹层 一、导入模型并烘焙 1. 导入模型&#xff0c;马灯模型如下所示 2. 在纹理集设置中点击“烘焙模型贴图” 设置输出大小为…

财务管理系统基石——维度,科目,辅助对象,业务分类【第七期】

前言 财务管理系统有其基本的业单元。整个系统又这些基石构成&#xff0c;那么具体是什么呢。先了解这么四种。维度&#xff0c;科目&#xff0c;辅助对象&#xff0c;业务分类 已经写了六期 【财务管理系统】业务向 &#xff0c;抵消是什么&#xff1f;冲销是什么&#xff1…

Linux基本指令篇

在前边&#xff0c;我们已经了解过了Linux操作系统的发展和应用&#xff0c;从该篇起&#xff0c;就正式进入对Linux的学习。 今天我们就来在Xshell上远程登录我们的云服务器。首先我们要知道自己云服务器的公网ip&#xff0c;然后修改一下密码。 点击跳转 修改完密码之后我们…

idea中 错误:找不到或无法加载主类

很神奇的就是maven打包是正常的&#xff0c;本来也是好好的&#xff0c;突然启动就报错了&#xff0c;我百度了很急&#xff0c;没什么结果&#xff0c;找了公司6年工作经验的老员工&#xff0c;还是搞了好久&#xff0c;我站了好久也是没解决。后来我也是在想maven的jar包都能…

git基础-git别名

git 别名 本篇&#xff0c;我们想介绍一个可以使Git 使用体验更简单、更轻松、更熟悉的功能&#xff1a;别名。为了清晰起见&#xff0c;我们在本系列的其他地方不会使用它们&#xff0c;但如果经常使用 Git&#xff0c;别名是应该了解的东西。 Git 不会自动推断部分输入的命…