MATLAB绘图基础9:多变量图形绘制

参考书:《 M A T L A B {\rm MATLAB} MATLAB与学术图表绘制》(关东升)。



9.多变量图形绘制
9.1 气泡图
  • 气泡图用于展示三个或更多变量变量之间的关系,气泡图的组成要素:

    • 横轴( X {\rm X} X轴):表示数据集中的一个变量,通常是数值变量;
    • 纵轴( Y {\rm Y} Y轴):表示数据集中的一个变量,通常是数值变量;
    • 气泡的大小:表示数据集中的另一个数值变量,较大的气泡表示较大的数值,较小的气泡表示较小的数值;
    • 气泡的颜色:表示数据集中的第四个变量,通常是一个分类变量,不同颜色表示不同的类别或子组;
    • 数据点标签:可在气泡上添加标签,显示具体数值或其他相关信息;
  • 气泡图的常见应用场景:

    • 经济数据分析:气泡图用于展示不同国家或地区的经济指标,如国内生产总值和人均收入间的关系,横轴表示生产总值,纵轴表示人均收入,气泡大小表示人口数量,不同颜色气泡代表不同地区或国家;
    • 金融市场分析:气泡图用于展示不同资产类别的回报率、波动性和市值间的关系;
    • 科学研究:气泡图用于展示实验结果,横轴和纵轴表示两个相关变量,气泡大小表示第三个变量;
    • 地理信息系统:气泡图常用于地理数据的可视化,横轴和纵轴表示地理坐标,气泡大小表示地区的人口或某种地理现象的强度;
    • 环境科学:气泡图可用于显示不同地区或国家的环境指标,如:二氧化碳排放量和可再生能源使用情况;
    • 医疗和生物学:气泡图用于显示不同治疗方案的效果,横轴和纵轴表示治疗参数,气泡大小表示患者数量,不同颜色气泡表示不同的疾病类型;
    • 社会科学:气泡图用于分析社会变量间的关系,如:教育水平、收入和居住地的关联;
  • 气泡图绘制基本示例:

    % ch09_01.m
    clear;
    clc;% 1.假设有一组数据,X代表横坐标,Y代表纵坐标,C代表每个点的颜色
    X = rand(1, 100);               % 生成100个随机数作为横坐标
    Y = rand(1, 100);               % 生成100个随机数作为纵坐标
    C = rand(1, 100);               % 生成100个随机数作为颜色值% 2.创建气泡图
    scatter(X, Y, 30, C, 'filled');
    colorbar;                       % 显示颜色条% 3.标签、标题;
    title('气泡图基本绘制示例');     % 图的标题
    xlabel('X轴');                  % X轴标签
    ylabel('Y轴');                  % Y轴标签% 4.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch09_01.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    1

9.2 堆积折线图
  • 堆积折线图可显示多个数据系列叠加在一起的折线图,常用于展现不同类目的数据趋势变化;

  • 堆积折线图常见应用场景:

    • 时间序列数据的趋势比较:堆积折线图常用于比较多个事件序列数据的趋势,如:一个公司可使用堆积折线图比较不同产品线的销售趋势,了解哪个产品线对总销售额的贡献最大;
    • 市场份额分析:堆积折线图用于比较不同公司或产品在市场上的份额变化,每个公司或产品的趋势线叠加在一起,显示它们在市场份额方面的相对贡献;
    • 资源分配和规划:项目管理和资源规划中,堆积折线图用于比较不同项目或任务的进度趋势,及对总体资源利用的影响;
    • 社会经济数据比较:政府和研究机构可使用堆积折线图来比较不同地区或群体的社会经济指标的趋势;
    • 生态学研究:生态学研究中,堆积折线图可用于比较不同物种或生态系统中各个因素的趋势,以研究它们间的相互作用;
    • 投资组合分析:金融领域中,堆积折线图可用于比较不同投资组合中各个资产的表现,并展示它们对总投资组合价值的贡献;
  • 堆积折线图基本绘制示例:

    % ch09_02.m
    clear;
    clc;% 1.创建示例数据;
    microseconds = [100, 200, 300, 400, 500, 600, 700, 800];
    method1_results = [10, 15, 13, 17, 20, 25, 28, 30];
    method2_results = [9, 12, 11, 14, 18, 20, 23, 25];
    method3_results = [5, 9, 10, 13, 16, 20, 24, 26];figure;
    hold on;% 2.绘制折线图;
    plot(microseconds, method1_results, 'b-o', 'LineWidth', 2, 'MarkerSize', 8, 'MarkerFaceColor', 'b');
    plot(microseconds, method2_results, 'r-s', 'LineWidth', 2, 'MarkerSize', 8, 'MarkerFaceColor', 'r');
    plot(microseconds, method3_results, 'g-^', 'LineWidth', 2, 'MarkerSize', 8, 'MarkerFaceColor', 'g');% 3.添加区域填充
    fill([microseconds, fliplr(microseconds)], [method1_results, fliplr(method1_results + method2_results)], 'c', 'EdgeColor', 'none', 'FaceAlpha', 0.5);
    fill([microseconds, fliplr(microseconds)], [method1_results + method2_results, fliplr(method1_results + method2_results + method3_results)], 'y', 'EdgeColor', 'none', 'FaceAlpha', 0.5);% 4.标题、标签、图例;
    xlabel('时间/微秒');
    ylabel('实验结果');
    title('堆积折线图基本示例图');
    legend('Method 1', 'Method 2', 'Method 3');
    grid on;
    hold off;% 5.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch09_02.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    2

9.3 堆积面积图
  • 堆积面积图通常用于展示多个类别或组的数据在一个时间段或连续轴上的积累趋势,每个类别的数据以不同颜色的堆积区域表示,观察整体趋势及每个类别的贡献;

  • 堆积面积图常见的应用场景:

    • 财务数据分析:堆积面积图用来展示公司的财务数据,如:收入、成本、利润等在不同时间段的堆积变化,每个类别代表一个财务指标,时间轴表示不同的财年或季度;
    • 市场份额分析:堆积面积图可用于展示不同竞争对手在市场上的份额随时间的变化,每个竞争对手的市场份额用不同颜色的堆积面积表示;
    • 生态学研究:生态学研究中,堆积面积图用来展示不同物种在生态系统中的相对丰富度随时间的变化,每个物种的丰富度用不同颜色的堆积面积表示;
    • 人口统计学研究:堆积面积图用于展示不同年龄组或人口组在一段时间内的人口分布变化,每个年龄组或人口组用不同颜色的堆积面积表示;
    • 气象数据分析:气象学中,堆积面积图用于展示不同气象因素,如:温度、湿度、降水等,在一年中的季节性变化,每个气象因素用不同颜色的堆积面积表示;
    • 电力消耗分析:用于展示不同能源来源,如:煤炭、天然气、风能、太阳能等,在一个地区的电力消耗情况,每种能源来源用不同颜色的堆积面积表示;
  • 堆积面积图绘制基本示例:

    % ch09_03.m
    clear;
    clc;% 1.生成基本数据;
    X = 1:50;
    Y1 = randi([1, 100], 1, 50);
    Y2 = randi([1, 100], 1, 50);
    Y3 = randi([1, 100], 1, 50);figure;stackY = [Y1;Y1 + Y2;Y1 + Y2 + Y3];% 2.绘制堆积面积图;
    area(X, stackY', 'EdgeColor', 'none');% 3.标签、标题、图例;
    xlabel('X轴');
    ylabel('Y轴');
    title('堆积面积图基本示例图');
    legend('Y1系列', 'Y2系列', 'Y3系列');% 4.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch09_03.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    3

9.4 堆积柱状图
  • 堆积柱状图用于可视化分类数据的图形类型,适用于展示多个类别的一个或多个组中的相对比例和总计;

  • 堆积柱状图将多个柱状图堆积在一起,形成一个整体柱状图,每个柱子代表一个组,堆积在柱子内部的不同颜色的部分代表不同的类别;

  • 堆积柱状图常见的应用场景:

    • 市场份额分析:堆积柱状图用于展示不同品牌或公司的市场份额,每个柱子代表一个市场或行业,柱子内的不同颜色部分表示不同品牌或公司的市场份额;
    • 资源分配:项目管理中,堆积柱状图可用于展示不同资源或任务在项目中的分配情况,每个柱子代表一个项目阶段或时间段,柱子内的不同颜色部分表示不同资源或任务的占用情况;
    • 研究数据分析:科学研究中,堆积柱状图可用于展示实验数据的不同类别的分布情况,每个柱子代表一个实验条件或样本组,柱子内的不同颜色部分表示不同类别的测量值;
    • 金融分析:金融领域中,堆积柱状图用于展示不同资产类别的投资组合,每个柱子代表一个投资组合,柱子内的不同颜色部分表示不同资产类别的占比;
  • 堆积柱状图基本绘制示例:

    % ch09_04.m
    clear;
    clc;% 1.创建模拟数据;
    companies = {'公司1', '公司2', '公司3', '公司4', '公司5'};
    product1 = [10, 20, 30, 50, 40];
    product2 = [40, 20, 30, 10, 50];
    product3 = [20, 30, 10, 40, 50];
    product4 = [30, 40, 50, 10, 20];
    product5 = [50, 10, 20, 30, 40];figure;% 2.绘制堆叠柱状图;
    bar([product1;product2;product3;product4;product5]', 'stacked');% 3.标题、标签、图例;
    xlabel('公司名称');
    ylabel('不同产品销售额');
    title('不同公司不同产品销售额(亿元)');
    legend('产品1', '产品2', '产品3', '产品4', '产品5', 'Location', 'northeastoutside');% 4.设置X轴刻度标签;
    xticks(1:5);
    xticklabels(companies);% 5.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch09_04.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    4

9.5 平行坐标图
  • 平行坐标图用于可视化多维数据的图形类型,适用于探索多个特征或属性之间的关系;

  • 平行坐标图中,每个数据点表示为一条线段,该线段与坐标轴平行,每个坐标轴代表数据的一个特征或属性,通过在不同的坐标轴上绘制线段,观察不同特征之间的关系和模式;

  • 常见的平行坐标图的应用场景:

    • 数据探索和发现模式:平行坐标图用于探索多维数据集中的模式、趋势和异常值,观察线段在不同坐标轴上的分布和交叉;
    • 特征分析:机器学习和数据科学中,平行坐标图用来分析不同特征间的相关性和影响;
    • 分类和聚类:平行坐标图可视化不同类别或簇之间的差异;
    • 时间序列分析:每个坐标轴代表时间的不同点,平行坐标图用于可视化时间序列数据中的趋势和变化;
    • 地理信息系统:地理信息系统中,平行坐标图用于可视化和分析具有多个地理属性的地理数据,如:城市规划、地理特征的空间分布等;
    • 生物信息学:生物学和遗传学中,平行坐标图用于分析基因组数据,比较不同基因的表达水平,或可视化不同样本之间的差异;
    • 金融分析:金融领域中,平行坐标图用于分析不同金融指标间的关系,或用于股票和投资组合的分析;
  • 平行坐标图绘制基本示例:

    % ch09_05.m
    clear;
    clc;% 1.创建示例数据,每一行代表一个数据点,每一列代表一个属性;
    data = [0.3, 0.4, 0.2, 0.7, 0.5, 0.8, 0.9, 0.1;0.5, 0.6, 0.4, 0.8, 0.7, 0.2, 0.3, 0.9;0.2, 0.3, 0.1, 0.6, 0.4, 0.9, 0.8, 0.5;0.4, 0.5, 0.3, 0.7, 0.6, 0.2, 0.1, 0.9;
    ];% 2.创建一个新图形窗口;
    figure;% 3.获取数据点的数量;
    numDataPoints = size(data, 1);% 4.创建颜色矩阵,每行对应一个数据点的颜色;
    colors = jet(numDataPoints);% 5.绘制平行坐标图;
    for i = 1:numDataPointsparallelcoords(data(i, :), 'Color', colors(i, :));hold on; % 保持图形打开以添加更多的数据点
    end% 6.自定义坐标轴的范围;
    axis([1, 8, 0, 1]);% 7.标题、标签、图例;
    legend('Location', 'northeast');
    xlabel('属性');
    ylabel('属性值');
    title('平行坐标图');
    set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2.0);% 8.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch09_05.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    5

9.6 散点图矩阵
  • 散点图矩阵用于同时展示多个变量之间的关系,通常用于多维数据集的探索性数据分析,分析变量之间的相关性、分布和趋势;

  • 散点图矩阵通过在一个矩阵中绘制多个散点图实现,在矩阵中的每个小格子里,显示两个不同变量之间的散点图;

  • 常见的散点图矩阵应用场景:

    • 探索数据集:帮助研究者快速了解数据集中多个变量之间的关系;
    • 发现相关性:通过散点图可以确定是否存在线性或非线性相关性,或是否存在群集或聚类;
    • 检测异常值:异常值在散点图中是离群点,容易被发现;
    • 了解分布:通过散点图了解每个变量的分布情况;
    • 数据预处理:建模前,散点图矩阵帮助确定哪些变量之间存在共线性,或哪些变量可能需要进行数据转换或归一化;
  • 绘制散点图矩阵基本示例:

    % ch09_06.m
    clear;
    clc;% 1.生成随机数据;
    data = randn(300, 5);% 2.绘制散点图矩阵;
    figure;for i = 1:5for j = 1:5subplot(5, 5, (i - 1) * 5 + j);if i == jhistogram(data(:, i));elsescatter(data(:, i), data(:, j), '.');endend
    end% 3.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch09_06.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    6

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

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

相关文章

带徒实训项目实战讲义分享:ApiFirst文档对比功能页面开发2

前一篇:带徒实训项目实战讲义分享:ApiFirst文档对比功能页面开发 亲爱的学员朋友们好,本小节跟小卷一起来学习用thymeleaf模板技术来渲染数据模型到表格中,通过本小节的学习,你会真正将thymeleaf模板技术应用到实处&a…

Qt获取本机Mac地址、Ip地址

一、简述 今天给大家分享一个获取本机IP地址和Mac地址的方法,经过多次测试,台式机、笔记本等多个设备,暂时没有发现问题。 由于很多时候本地安装了虚拟机、蓝牙、无线网卡或者其他设备等,会有多个Mac地址,所以需要进…

汽车信息安全 -- 存到HSM中的密钥还需包裹吗?

目录 1.车规芯片的ROM_KEY 2.密钥加密与包裹 3.瑞萨RZ\T2M的密钥导入 4.小结 在车控类ECU中,我们通常把主控芯片MCU中的HSM以及HSM固件统一看做整个系统安全架构的信任根。 所以大家默认在HSM内部存储的数据等都是可信的,例如CycurHSM方案中使用HSM…

ControlGAN:Controllable Text-to-Image Generation

1 研究目的 当前的生成网络通常是不可控的,这意味着如果用户更改句子的某些单词,合成图像将与原始文本生成的合成图像显着不同;当给定的文本描述(例如颜色)发生变化时,鸟类的相应视觉属性被修改&#xff0c…

easyexcel常见问题分析

文章目录 一、读取数字多了很多小数位的精度问题 一、读取数字多了很多小数位的精度问题 浮点型转成BigDecimal的时候会出现精度问题,例如 这儿设置的实体类对象类型是String,默认用到的是StringNumberConverter转换器 2.1.4 版本 public class Strin…

【无人机设计与技术】四旋翼无人机的建模

摘要 本项目的目标是通过 Simulink 建模和仿真,研究四旋翼无人机的建模、姿态控制、定点位置控制及航点规划功能。无人机建模包含了动力单元模型、控制效率模型和刚体模型,并运用这些模型实现了姿态控制和位置控制。姿态控制为无人机的平稳飞行提供基础…

计算机视觉实战项目4(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)

往期热门项目回顾: 计算机视觉项目大集合 改进的yolo目标检测-测距测速 路径规划算法 图像去雨去雾目标检测测距项目 交通标志识别项目 yolo系列-重磅yolov9界面-最新的yolo 姿态识别-3d姿态识别 深度学习小白学习路线 AI健身教练-引体向上-俯卧撑计数…

在VMware虚拟机上部署polardb

免密登录到我们的虚拟机之后,要在虚拟机上部署polardb数据库,首先第一步要先克隆源码: 为了进SSH协议进行传输源码需要先进行下面的步骤: 将宿主机上的私钥文件复制到虚拟机上 scp "C:\Users\waitw\.ssh\id_rsa" ann…

ThinkPHP发送邮件教程:从配置到发送指南!

ThinkPHP发送邮件功能实现策略?Thinkphp如何发邮件? ThinkPHP作为一个流行的PHP框架,提供了强大的邮件发送功能,使得开发者可以轻松地在应用中集成邮件发送功能。AokSend将详细介绍如何在ThinkPHP中配置和发送邮件。 ThinkPHP发…

【Linux-基础IO】如何理解Linux下一切皆文件磁盘的介绍

目录 如何理解Linux系统上一切皆文件 1.物理角度认识磁盘 2.对磁盘的存储进行逻辑抽象 磁盘寻址 3.磁盘中的寄存器 如何理解Linux系统上一切皆文件 计算机中包含大量外设,操作系统想要管理好这些外设,就必须对这些外设进行先描述再组织&#xff0c…

【Linux 23】线程池

文章目录 🌈 一、线程池的概念🌈 二、线程池的应用场景🌈 三、线程池的实现 🌈 一、线程池的概念 线程池 (thread pool) 是一种利用池化技术的线程使用模式。 虽然创建线程的代价比创建进程的要小很多,但小并不意味着…

一篇文章快速学会docker容器技术

目录 一、Docker简介及部署方法 1.1Docker简介 1.1.1什么是docker 1.1.2 docker在企业中的应用场景 1.1.3 docker与虚拟化的对比 1.1.4 docker的优势 二 、部署docker 2.1 容器工作方法 2.2 部署第一个容器 2.2.1 配置软件仓库 2.2.2 安装docker-ce并启动服务 2.2.…

【AIGC】ChatGPT提示词解析:如何生成爆款标题、节日热点文案与完美文字排版

博客主页: [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 💯前言💯情绪化的吸睛爆款标题提示词使用方法 💯紧跟节日热点选题文案提示词使用方法 💯高效文字排版技巧提示词使用方法 💯小结 &#x1f4af…

数据结构-链表笔记

移除节点 203. 移除链表元素 - 力扣(LeetCode) /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListN…

Oracle数据库体系结构基础

关于Oracle体系结构 基于Oracle11g体系结构 目标: 了解Oracle体系结构掌握逻辑存储结构掌握物理存储结构熟悉Oracle服务器结构熟悉常用的数据字典 Oracle数据库管理中的重要的三个概念 实例(instance):实例是指一组Oracle后台进程以及在服务器中分配…

安宝特分享 | AR技术重塑工业:数字孪生与沉浸式培训的创新应用

在数字化转型的浪潮中,AR(增强现实)技术与工业的结合正在呈现新的趋势和应用延伸。特别是“数字孪生”概念的崛起,为AR技术在工业中提供了独特而创新的切入点。 本文将探索AR如何与数字孪生、沉浸式体验和实用案例相结合&#xf…

ResNet50V2:口腔癌分类

本文为为🔗365天深度学习训练营内部文章 原作者:K同学啊 一 ResNet和ResNetV2对比 改进点:(a)original表示原始的ResNet的残差结构,(b)proposed表示新的ResNet的残差结构,主要差别就是(a)结构先卷积后进行BN和激活函数…

JAVAEE如何实现网页(jsp)间的数据传输?一文总结

刚刚接触到JAVAEE的WEB开发,解释不周的地方希望感谢指正!!! 情景如下: 我的使用是21版的IDEA,9.03版本的tomcat,来做一个示范。 构建项目 点击下一步 -> 完成,等待项目构建结束…

袋鼠云数据资产平台:数据模型标准化建表重构升级

数据模型是什么?简单来说,数据模型是用来组织和管理数据的一种方式。它为构建高效且可靠的信息系统提供了基础,不仅决定了如何存储和管理数据,还直接影响系统的性能和可扩展性。 想要建立一个良好的数据模型,设计时需…

Ubuntu开机进入紧急模式处理

文章目录 Ubuntu开机进入紧急模式处理一、问题描述二、解决办法参考 Ubuntu开机进入紧急模式处理 一、问题描述 Ubuntu开机不能够正常启动,自动进入紧急模式(You are in emergency mode)。具体如下所示: 二、解决办法 按CtrlD进…