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

news2024/9/28 3:28:32

参考书:《 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:numDataPoints
        parallelcoords(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:5
        for j = 1:5
            subplot(5, 5, (i - 1) * 5 + j);
            if i == j
                histogram(data(:, i));
            else
                scatter(data(:, i), data(:, j), '.');
            end
        end
    end
    
    % 3.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch09_06.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    6

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

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

相关文章

LED显示屏如何通过FMEA进行风险分析:打造无忧显示新境界

LED显示屏作为高科技产品,其性能受到多种因素的影响,包括但不限于设计缺陷、材料质量、制造工艺、使用环境等。任何环节的疏漏都可能导致显示屏出现亮度不均、色彩失真、故障频发等问题,进而影响用户体验和品牌形象。因此,通过FME…

信息安全工程师(23)网络安全体系相关模型

前言 网络安全体系相关模型是描述网络安全体系如何实现的理论框架和抽象模型,它们为理解和设计网络安全解决方案提供了系统化的方法。 1. PDR模型 提出者:美国国际互联网安全系统公司(ISS)核心内容:保护(Protection)、检测(Detection)、响应(…

WWW 2024最新论文分享┆用于用户响应预测的时间兴趣网络

目录 论文简介 1. 团队介绍 2. 研究背景及主要贡献 3. 方法 4. 实验及结果 5. 总结与展望 6. 参考文献 论文简介 本推文详细介绍了一篇上海交通大学高晓沨教授和陈贵海教授团队发表在顶级学术会议WWW 2024的最新论文《Temporal Interest Network for User Response Pre…

MySQL—索引机制详解

索引介绍 基本介绍 MySQL 官方定义索引为一种帮助数据库高效获取数据的结构,其本质是排好序的快速查找数据结构。数据库除了存储表中的数据,还维护一些额外的满足特定查找算法的数据结构,这些数据结构以某种方式指向实际的数据,…

Visual Studio使用与“Hello Word“的编写

1.打开Visual Studio点击"创建新项目" 2.点击"空项目",并点击"下一步" 3.设置"项目名称"并"设置地址" 4.打开项目后,右击"源文件"并选择"添加"的"新建项" 5.点击"…

SylixOS网络之DMA(Direct Memory Access)

目录 DMA 模块在网络设备中的作用Buffer Description (BD) 结构BD 结构定义:BD 结构字段解释BD 结构的工作流程 总结 在嵌入式系统和实时操作系统(RTOS)中,DMA(Direct Memory Access)模块是一种非常重要的硬…

1.MySQL的安装

目录 下载安装包 安装前环境的准备 正式安装 下载安装包 MySQL安装网址:https://www.mysql.com/cn/ 进去之后就是上面这个页面,进行汉化的时候将这个网页拉至最下,右下角点成中文就可以,如下这个页面。 回到页面顶端,点击下载&a…

图像特征提取-SIFT

文章目录 一、定义与原理二、主要步骤三、特点与优势四、代码运用五、应用领域 图像特征提取中的SIFT(Scale-Invariant Feature Transform,尺度不变特征变换)是一种强大的局部特征提取算法,广泛应用于计算机视觉和图像处理领域。以…

算法题——滑动窗口(图示+代码)

什么时候可以使用滑动窗口? 当我们尝试对一条题目进行暴力插解时,若发现 一、长度最小的子数组 题目链接:. - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程…

mysql逗号分隔的一行数据转为多行数据

原表: 结果: 方法一:如果每条数据的被逗号分隔的数量在637条以内,使用 mysql.help_topic(mysql自带的表,只有637个序号)。 select a.id,a.enclosure_ids,SUBSTRING_INDEX(SUBSTRING_INDEX(a.en…

Linux线程同步机制之条件变量

线程同步的概念: 线程同步是多线程编程中的一个重要概念,它确保了多个线程在访问共享资源时能够协调一致,避免出现竞态条件、数据不一致或其他同步相关的问题。线程同步的关键在于控制多个线程的执行顺序和时机。 线程--条件变量的典型应用…

简单的springboot 编写Socket服务接口

简单的springboot 编写Socket服务接口 1.需求 我们项目中有部分老接口为票据接口,其中实现为java socket形式进行实现,但是其中大部分信息都是原始公司封装的包进行实现的,想要修改非常费劲,所以此处简单了解了一下socket&#…

卫星导航定位原理学习(三)

GNSS信号体制及其性能分析 GNSS信号体制直接影响卫星导航系统的性能,是卫星导航系统设计的重要内容。卫星导航信号体制主要包括信号频率、信号结构、导航电文3部分。其中信号结构又包括调制波形、频率带宽、扩频码码长、码速率、码结构、信号功率等内容。导航电文设…

25 Vue3之如何开发移动端并适配

开发移动端最主要的就是适配各种手机 vw vh是相对viewport 视口的单位,配合meta标签可以直接使用,无需计算 1vw1/100视口宽度 1vh1/100视口高度 当前屏幕视口是375像素,1vw就是3.75px postCss 提供了 把Css 转换AST的能力,类…

LeetCode --- 416周赛

题目列表 3295. 举报垃圾信息 3296. 移山所需的最少秒数 3297. 统计重新排列后包含另一个字符串的子字符串数目 I 3298. 统计重新排列后包含另一个字符串的子字符串数目 II 一、举报垃圾信息 直接用哈希表统计bannedWords中的单词,遍历message中出现的垃圾信息…

WiFi无线连接管理安卓设备工具:WiFiADB

介绍 WiFi ADB 使您能够通过 WiFi TCP/IP 连接直接在设备上轻松调试和测试 Android 应用,无需使用 USB 数据线。在启用 WiFi 上的 ADB 后,打开控制台将电脑连接到设备。 手机和电脑在同一个WiFi然后电脑上运行adb connect x.x.x.x:x命令即可 下载 谷…

Go语言开发后台框架不能只有CRUD还需有算法集成基础功能-GoFly框架集成了自然语言处理(NLP)分词、关键词提取和情感分析

前言 Go语言开发框架,我们要把Go的优势体现在框架中,不仅CRUD常规操作,还要把常用即有算力自己集成到框架中,而不是去购买第三方提供服务接口。作为开发者可以拓宽自己代码面,获取更多成就感,同时也提供自…

戴尔PowerEdge R840服务器亮黄灯 不开机

最近接修到一台东莞用户的DELL PowerEdge R840 服务器因为意外断电后,无法正常开机的问题, 大概故障现象是 插上电源线 按卡机按钮无响应,无法开机,无显示输出,工程师到现场检修,经过idrac中日志分析&#…

商标是什么?为何对企业至关重要?

商标作为企业的核心标识,不仅是区分商品与服务的关键,更是企业品牌塑造、市场区分和消费者信任建立的基石。那么,商标究竟是什么?它又为何对企业如此重要呢? 商标的定义及类型 商标(Trademark)…

Python获取百度翻译的两种方法

一、引言 百度是我们常用的搜索工具,其翻译是与爱词霸合作,总体看其反应速度较快,可以作为项目中重要的翻译工具。根据大家的需要,现提供两种Python获取百度翻译的两种办法: 二、requests法 我们引用requests模块&a…