当前位置: 首页 > news >正文

MATLAB绘制堆叠填充图--巧用句柄

MATLAB绘制堆叠填充图–巧用句柄

目录

  • MATLAB绘制堆叠填充图--巧用句柄
  • 1. 主要原理讲解
    • 1.1 主要函数
    • 1.2 句柄原理
  • 2. 绘图示例
    • 2.1 准备数据
    • 2.2 绘制堆叠填充图-使用句柄控制图形属性
    • 2.3 设置填充颜色和样式
    • 2.4 添加标题和标签
    • 2.5 绘图效果
  • 3. 结语

堆叠填充图是一种常见的数据可视化方式,用于展示多组数据在不同类别上的累积贡献。这次将介绍如何使用MATLAB绘制堆叠填充图,特别是使用句柄来实现更灵活的绘图操作。文中包含详细的案例、代码说明以及注意事项哦。

1. 主要原理讲解

1.1 主要函数

主要使用 MATLAB 中的 area 函数来绘制堆叠填充图,并通过句柄控制图形的样式和属性

  • area 函数: 该函数用于绘制堆叠填充图。它的基本语法是 area(x, y),其中 x 是 x 轴的值,y 是一个矩阵,每一行代表一个类别的 y 轴的值。在堆叠填充图中,可以传递多个 y 值,它们会自动堆叠在一起。

  • 句柄属性设置: 使用句柄对象来控制图形的样式和属性。例如,可以使用句柄对象 h 来设置填充颜色和透明度,通过 h.FaceColorh.FaceAlpha 属性来分别设置填充颜色和透明度。

1.2 句柄原理

在MATLAB中,句柄(handle)是指对图形对象或其他MATLAB对象的引用。使用句柄可以在代码中对这些对象进行操作和控制。在绘图中,可通过对图形对象的句柄进行操作,来改变图形的样式、属性和行为。句柄的主要作用包括:

  1. 对象控制:通过句柄可以对图形对象进行控制,例如改变其颜色、线型、标签等。

  2. 动态修改:使用句柄可以动态修改图形对象的属性,而不需要重新绘制图形,这对于交互式数据可视化和动态图形更新非常有用。

  3. 对象传递:句柄可以作为参数传递给函数,从而实现函数间的数据共享和信息传递。

2. 绘图示例

2.1 准备数据

首先,准备需要绘制的堆叠填充图所需的数据。每组数据代表一个类别,每行数据表示该类别在不同时间点或其他维度上的取值。(其他的数据大家可以根据自己的绘图需求进行调整,基本逻辑是一样的)

易错点:确保数据维度一致,每组数据的数量相同。
重点内容:合理组织数据,以便在堆叠填充图中清晰展示各个类别的累积贡献。

% 准备数据
x = 1:10; % 时间或其他维度
data1 = rand(1, 10); % 数据1
data2 = rand(1, 10); % 数据2
data3 = rand(1, 10); % 数据3

2.2 绘制堆叠填充图-使用句柄控制图形属性

使用MATLAB的area函数绘制堆叠填充图,使用句柄,方便控制图形的样式和属性。

注意:代码中刚开始的图形参数设置是为了方便控制图形的常用基本参数,代码是通用的,具体可参考博主其他博文或资源
博文:如何合理布局子图–确定MATLAB的subplot子图位置参数
资源:数据可视化-绘图技巧-MATLAB-subplot位置分布确定函数

易错点:在叠加多组数据时,需要注意数据的顺序,以确保堆叠填充图的正确显示。
重点内容:选择合适的填充颜色和透明度,使得图形看起来清晰美观。

% 给定图形参数   
% 注:图形参数设置是为了方便控制图形的常用基本参数,代码是通用的,具体可参考博主其他博文或资源
% 博文:https://blog.csdn.net/weixin_43323302/article/details/136383424?spm=1001.2014.3001.5501
% 资源:https://download.csdn.net/download/weixin_43323302/88909564?spm=1001.2014.3001.5501
N = 1; % 子图行数
M = 1; % 子图列数
subplot_length = 4; % 子图高度 (比例2:3,3:4,9:16 等)
subplot_width = 6; % 子图宽度
top_margin = 0.4; % 上边界间距
bottom_margin = 0.6; % 下边界间距
left_margin = 0.6; % 左边界间距
right_margin = 0.4; % 右边界间距
gap = 0.8; % 子图间隙
[subplot_position,figure_width,figure_length]=subplot_params(N,M,subplot_length,subplot_width,top_margin,bottom_margin,left_margin,right_margin,gap);
fontname='songti';
fontsize=12;
labelmultiplier=1.3;
titlemultiplier=1.4;
pos=subplot_position;% 绘制堆叠填充图
f1=figure('Units', 'inches','Position', [0, 0, figure_width, figure_length]);  % 一定要说明单位
set(f1,'name','堆叠填充图');
h = area(x, [data1; data2; data3]');
hold on;

2.3 设置填充颜色和样式

使用句柄函数,根据需要为每组数据设置不同的线型、填充颜色,并调整填充区域的透明度,以实现堆叠填充图的美观效果。

易错点:颜色搭配需要考虑到对比度和可读性,透明度的设置要适中,既能显示出堆叠效果,又不会影响数据的辨识度。
重点内容:可以使用MATLAB内置的颜色映射或自定义填充颜色,同时通过调整颜色的透明度来控制图形的层次感和美观度。

% 设置填充颜色和透明度
h(1).LineStyle = '-';  % 数据1的线型
h(2).LineStyle = '-.'; % 数据2的线型
h(3).LineStyle = ':';  % 数据3的线型
h(1).FaceColor = [0.2, 0.6, 0.9]; % 数据1的填充颜色
h(2).FaceColor = [0.9, 0.5, 0.2]; % 数据2的填充颜色
h(3).FaceColor = [0.5, 0.8, 0.2]; % 数据3的填充颜色
h(1).FaceAlpha = 0.3; % 数据1的填充透明度
h(2).FaceAlpha = 0.5; % 数据2的填充透明度
h(3).FaceAlpha = 0.7; % 数据3的填充透明度

2.4 添加标题和标签

最后,添加图的标题、坐标轴标签和图例。

易错点:标题和标签的文字要简明扼要,图例的位置要避免遮挡数据。
重点内容:通过设置字体大小、加粗、颜色等属性,增强图形的可读性和美观度。

% 添加标题和标签
title('堆叠填充图');
xlim([1,10]);
xlabel('时间');
ylabel('数值');
legend({'A','B','C'}, 'Location', 'best','FontSize',fontsize); % 设置legend
set(gca,'FontName',fontname,'FontSize',fontsize,'LabelFontSizeMultiplier',labelmultiplier,'TitleFontSizeMultiplier',titlemultiplier);

2.5 绘图效果

在这里插入图片描述

3. 结语

通过以上步骤,能够高效地使用MATLAB绘制带有堆叠填充效果的图形,并通过句柄方便清晰地控制图形的样式和属性。这个方法可以有效展示多组数据在不同类别上的累积贡献。当然本文仅仅选取了一个经典示例,大家可以根据自己的需求合理调整。

相关文章:

MATLAB绘制堆叠填充图--巧用句柄

MATLAB绘制堆叠填充图–巧用句柄 目录 MATLAB绘制堆叠填充图--巧用句柄1. 主要原理讲解1.1 主要函数1.2 句柄原理 2. 绘图示例2.1 准备数据2.2 绘制堆叠填充图-使用句柄控制图形属性2.3 设置填充颜色和样式2.4 添加标题和标签2.5 绘图效果 3. 结语 堆叠填充图是一种常见的数据可…...

JQuery的定义

jQuery是一个js库,使用jQuery会比js简单一点 jQuery文件是一个自执行函数 jQuery文件是一个自执行函数 $传递的参数不同,效果也不同: 传递的是匿名函数,那$就是一个入口函数,传递的是一个字符串,那$就…...

【操作系统】FCFS、SJF、HRRN、RR、EDF、LLF调度算法及python实现代码

文章目录 一、先来先服务调度算法(FCFS) 二、短作业优先调度算法(SJF) 三、高响应比优先调度算法(HRRN) 四、轮转调度算法(RR) 五、最早截至时间优先算法(EDF&#…...

Image-Adaptive YOLO for Object Detection in Adverse Weather Conditions(IA-YOLO)

1、总体概述 基于深度学习的目标检测在常规条件的数据集可以获得不错的结果,但是在环境、场景、天气、照度、雾霾等自然条件的综合干扰下,深度学习模型的适应程度变低,检测结果也随之下降,因此研究在复杂气象条件下的目标检测方法…...

Mac电脑Jmeter集成到Jenkins,压测多个接口并生成测试报告

Jenkins支持的JDK版本17、21,通过java -version查看当前JDK版本,确认是否匹配 打开网址https://www.jenkins.io/download 点击下载,选择mac版本 commend空格打开终端,输入安装命令brew install jenkins 安装完成后输入brew servi…...

redis-Hash

一,应用场景 Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。Set就是一种简化的Hash,只变动key,而value使用默认值填充。 可以将一个Hash表作为一个对象进行存储,表中存放对象的信息。 二,命令 H…...

Kubernetes kafka系列 | Strimzi 部署kafka-bridge

Strimzi kafka集群部署直通车 一、kafka bridge 介绍 Kafka Bridge 是 Apache Kafka 生态系统中的一个工具或组件,用于实现 Kafka 与其他系统或协议之间的通信或集成。Kafka 本身是一个分布式事件流平台,广泛用于构建实时数据流水线和流式应用程序。然而…...

AR和VR如何改变客户体验?

How AR and VR are transforming customer experiences? How AR and VR are transforming customer experiences AR和VR如何改变客户体验 AR and VR technology was largely expedited by the past pandemic with at least 93.3 million and 58.9 million users r…...

微信小程序中实现埋点的方法

在小程序开发过程中,埋点是实现数据采集和用户行为分析的重要手段。通过埋点,我们可以获取用户在使用小程序时的各种操作信息,从而更好地了解用户行为特征,优化产品体验。下面将介绍如何在小程序中实现埋点,并通过代码示例进行说明。 一、埋点实现思路 小程序的埋点实现主要依…...

vue记事本渲染以及交互

以下是记事本的源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>记事本</title><styl…...

Zookeeper中的脑裂

简单点来说&#xff0c;脑裂(Split-Brain) 就是比如当你的 cluster 里面有两个节点&#xff0c;它们都知道在这个cluster 里需要选举出一个 master。那么当它们两个之间的通信完全没有问题的时候&#xff0c;就会达成共识&#xff0c;选出其中一个作为 master。但是如果它们之间…...

【漏洞复现】金和OA XmlDeal.aspx XXE漏洞

0x01 产品简介 金和数字化智能办公平台(简称JC6)是一款结合了人工智能技术的数字化办公平台,为企业带来了智能化的办公体验和全面的数字化转型支持。同时符合国家信创认证标准,支持组织数字化转型,实现业务流程的数字化、智能化和协同化,提高企业竞争力。 0x02 漏洞概述…...

对比:React 还是 Vue

自己之前的开发栈一直是 Vue&#xff0c;对 Vue 的设计理念及底层实现原理算是颇有了解&#xff1b;随着公司技术迭代&#xff0c;近半年来开始接触&使用 React。 前面写了几篇关于 React 的文章&#xff0c;但大部分都是知识点以及开发过程问题的沉淀总结。 这篇文章想尝…...

ubuntu 20.04 SD 卡分区类型 msdos 改为 GPT 的方法

前言 默认 SD 卡分区是 FAT32 格式&#xff0c;为了用于嵌入式Linux ext4 文件系统&#xff0c;需要改为 ext4 文件系统&#xff0c;但是SD 卡分区类型默认是 msdos 类型&#xff0c;也就是 MBR 类型&#xff0c;不是 GPT 类型。 烧写 ext4 分区表&#xff0c;或者使用 ubuntu…...

Kubernetes(K8s)技术解析

1. K8s简介 Kubernetes&#xff08;简称K8s&#xff09;是一个开源的容器编排平台&#xff0c;旨在简化容器化应用程序的部署、扩展和管理。为开发者和运维人员提供了丰富的功能和灵活的解决方案&#xff0c;帮助他们更轻松地构建、部署和管理云原生应用程序。以下是关于Kubern…...

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之十 简单颜色反转效果

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之十 简单颜色反转效果 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之十 简单颜色反转效果 一、简单介绍 二、简单颜色反转效果实现原理 三、简单颜色反转效果案例实现简单步骤 四、注…...

【ELK+Kafka+filebeat分布式日志收集】部署filebeat和Kibana(三)

filebeat下载 官网:https://www.elastic.co/cn/downloads/beats/filebeat 或者 cd /opt wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.8.1-linux-x86_64.tar.gz依次执行如下命令...

二.音视频编辑-媒体组合-播放

引言 当涉及到音视频编辑时&#xff0c;媒体资源的提取和组合是至关重要的环节。在iOS平台上&#xff0c;AVFoundation框架提供了丰富而强大的功能&#xff0c;使得媒体资源的操作变得轻松而高效。从原始的媒体中提取片段&#xff0c;然后将它们巧妙地组合成一个完整的作品&am…...

前端安全-面试题(2024)

1. 面试总结话术: 前端常见的安全问题主要包括以下几种: 跨站脚本攻击(XSS):攻击者通过在目标网站注入恶意脚本,当用户访问网站时,恶意脚本会被执行,从而窃取用户信息或进行其他恶意操作。这种攻击通常利用表单提交、URL参数等方式注入脚本。存储型 xss 恶意代码存在数…...

CVE-2022-29405 Apache Archiva任意用户密码重置漏洞分析

Apache Archiva是一套可扩展的Artifact Repository管理系统。它能够与Maven&#xff0c;Continuum和ANT等构建工具完美结合。Archiva提供的功能包括&#xff1a;远程Repository代理&#xff0c;基于角色的安全访问管理&#xff0c;Artifact分发、维护、查询&#xff0c;生成使用…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

SQL慢可能是触发了ring buffer

简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...