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.FaceColor和h.FaceAlpha属性来分别设置填充颜色和透明度。
1.2 句柄原理
在MATLAB中,句柄(handle)是指对图形对象或其他MATLAB对象的引用。使用句柄可以在代码中对这些对象进行操作和控制。在绘图中,可通过对图形对象的句柄进行操作,来改变图形的样式、属性和行为。句柄的主要作用包括:
-
对象控制:通过句柄可以对图形对象进行控制,例如改变其颜色、线型、标签等。
-
动态修改:使用句柄可以动态修改图形对象的属性,而不需要重新绘制图形,这对于交互式数据可视化和动态图形更新非常有用。
-
对象传递:句柄可以作为参数传递给函数,从而实现函数间的数据共享和信息传递。
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中的脑裂
简单点来说,脑裂(Split-Brain) 就是比如当你的 cluster 里面有两个节点,它们都知道在这个cluster 里需要选举出一个 master。那么当它们两个之间的通信完全没有问题的时候,就会达成共识,选出其中一个作为 master。但是如果它们之间…...
【漏洞复现】金和OA XmlDeal.aspx XXE漏洞
0x01 产品简介 金和数字化智能办公平台(简称JC6)是一款结合了人工智能技术的数字化办公平台,为企业带来了智能化的办公体验和全面的数字化转型支持。同时符合国家信创认证标准,支持组织数字化转型,实现业务流程的数字化、智能化和协同化,提高企业竞争力。 0x02 漏洞概述…...
对比:React 还是 Vue
自己之前的开发栈一直是 Vue,对 Vue 的设计理念及底层实现原理算是颇有了解;随着公司技术迭代,近半年来开始接触&使用 React。 前面写了几篇关于 React 的文章,但大部分都是知识点以及开发过程问题的沉淀总结。 这篇文章想尝…...
ubuntu 20.04 SD 卡分区类型 msdos 改为 GPT 的方法
前言 默认 SD 卡分区是 FAT32 格式,为了用于嵌入式Linux ext4 文件系统,需要改为 ext4 文件系统,但是SD 卡分区类型默认是 msdos 类型,也就是 MBR 类型,不是 GPT 类型。 烧写 ext4 分区表,或者使用 ubuntu…...
Kubernetes(K8s)技术解析
1. K8s简介 Kubernetes(简称K8s)是一个开源的容器编排平台,旨在简化容器化应用程序的部署、扩展和管理。为开发者和运维人员提供了丰富的功能和灵活的解决方案,帮助他们更轻松地构建、部署和管理云原生应用程序。以下是关于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依次执行如下命令...
二.音视频编辑-媒体组合-播放
引言 当涉及到音视频编辑时,媒体资源的提取和组合是至关重要的环节。在iOS平台上,AVFoundation框架提供了丰富而强大的功能,使得媒体资源的操作变得轻松而高效。从原始的媒体中提取片段,然后将它们巧妙地组合成一个完整的作品&am…...
前端安全-面试题(2024)
1. 面试总结话术: 前端常见的安全问题主要包括以下几种: 跨站脚本攻击(XSS):攻击者通过在目标网站注入恶意脚本,当用户访问网站时,恶意脚本会被执行,从而窃取用户信息或进行其他恶意操作。这种攻击通常利用表单提交、URL参数等方式注入脚本。存储型 xss 恶意代码存在数…...
CVE-2022-29405 Apache Archiva任意用户密码重置漏洞分析
Apache Archiva是一套可扩展的Artifact Repository管理系统。它能够与Maven,Continuum和ANT等构建工具完美结合。Archiva提供的功能包括:远程Repository代理,基于角色的安全访问管理,Artifact分发、维护、查询,生成使用…...
脑电分析避坑指南:为什么你的PLV锁相值总等于1?希尔伯特变换与窄带滤波详解
脑电分析避坑指南:为什么你的PLV锁相值总等于1?希尔伯特变换与窄带滤波详解 在脑电信号分析领域,相位锁定值(Phase Locking Value, PLV)是衡量不同脑区神经振荡同步性的重要指标。但许多研究者在实际计算中常遇到一个令…...
当服务器内存足够大时:为什么我建议你在CentOS 8上彻底禁用Swap?
大内存时代:CentOS 8禁用Swap的云原生性能优化实践 在云计算与容器化技术席卷全球的今天,服务器硬件配置正经历着革命性变化。128GB、256GB甚至TB级内存已成为现代服务器的标配,而传统Linux内存管理机制中的Swap分区在这种新硬件环境下是否还…...
LeetCode 3548. 等和矩阵分割2 详细题解(前缀和+二分+连通性分析)
LeetCode 3548. 等和矩阵分割2 详细题解(前缀和二分连通性分析) 🏷️ 标签:前缀和、二分查找、连通性、哈希表、矩阵、周赛难题 📊 难度:中等 | 📝 题目编号:3548 | 🗂️…...
vLLM-v0.17.1在新闻聚合平台的应用:热点事件摘要生成服务
vLLM-v0.17.1在新闻聚合平台的应用:热点事件摘要生成服务 1. 技术背景与需求场景 新闻聚合平台每天需要处理海量新闻内容,如何快速生成准确、简洁的热点事件摘要成为关键挑战。传统方法依赖人工编辑或简单规则提取,效率低下且质量参差不齐。…...
PyTorch 2.8镜像实战案例:自媒体创作者批量生成短视频封面图工作流
PyTorch 2.8镜像实战案例:自媒体创作者批量生成短视频封面图工作流 1. 场景痛点与解决方案 短视频创作者每天面临的最大挑战之一,就是需要为每个视频制作吸引眼球的封面图。传统方式要么依赖设计师(成本高、周期长),…...
Stable Diffusion像素艺术工作站实战:Pixel Fashion Atelier Forge Scale调优指南
Stable Diffusion像素艺术工作站实战:Pixel Fashion Atelier Forge Scale调优指南 1. 像素时装锻造坊简介 Pixel Fashion Atelier是一款基于Stable Diffusion与Anything-v5的图像生成工作站,专为像素艺术创作而设计。与传统AI工具不同,它采…...
7.企业级开发
一.软件开发的流程二.系统开发环境三.分支设计规范Git Flow模型四.企业级项目管理https://gitee.com/enterprises1.创建项目2.创建项目对应的仓库3.添加成员还可以进行(项目/仓库)成员管理五.开发实战场景1.创建仓库时,一般选生产和开发模型,其他的分支自己创建2.创建新分支:3.…...
虚拟控制器与设备模拟从入门到精通:ViGEmBus驱动技术指南
虚拟控制器与设备模拟从入门到精通:ViGEmBus驱动技术指南 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 在游戏开发与输入设备模拟领域…...
Halcon 标定(Calibration)与引导(Guidance)的工业实践:从理论到高精度落地的全链路解析
1. Halcon标定技术的基础认知 第一次接触Halcon标定时,我和很多新手一样被那些专业术语吓到了。但真正用起来才发现,这套系统就像给机器装上了"眼睛和尺子"。简单来说,标定就是教会相机看懂真实世界的尺寸和位置。想象一下…...
Seed-Coder-8B-Base体验报告:这个开源代码模型到底强在哪里?
Seed-Coder-8B-Base体验报告:这个开源代码模型到底强在哪里? 1. 开篇:为什么选择Seed-Coder-8B-Base 在代码生成模型的海洋中,Seed-Coder-8B-Base以其独特的优势脱颖而出。作为字节团队开源的8B参数级模型,它不仅体积…...
