MATLAB 散点矩阵图:探索多维数据关系的可视化工具

散点矩阵图 (Scatter Matrix Plot) 是数据探索阶段的强大工具,特别适合分析多维数据集中变量间的关系。在本文中,我们将使用 MATLAB 来创建散点矩阵图,并探索经典的 Fisher's Iris 数据集。

一、散点矩阵图简介

散点矩阵图是一种组合图表,它将多个变量之间的散点图排列在一个矩阵中。对角线通常显示每个变量的分布情况,而非对角线位置展示变量对之间的关系。这种可视化方式能帮助我们快速识别:

  • 变量间的相关性
  • 数据中的聚类或分组
  • 异常值和数据分布特征
  • 不同类别数据的分布差异

二、MATLAB 实现散点矩阵图

下面是使用 MATLAB 绘制散点矩阵图的完整代码:

% 加载Fisher's Iris数据集
load fisheriris;
% 提取测量数据(花瓣和萼片的长度与宽度)
X = meas(:, 1:4);
% 将物种名称转换为分类变量
species = categorical(species);
% 创建新图形窗口
figure;
% 绘制散点矩阵图
% 第一个参数X:包含所有变量的数据矩阵
% 第二个参数[]:表示不使用额外的分组变量
% 第三个参数species:用于为不同类别数据设置不同颜色
gplotmatrix(X, [], species);
% 添加标题
title('Fisher''s Iris数据集散点矩阵图');
% 保存图像
saveas(gcf, '散点矩阵图.jpg');

三、代码解析

让我们逐步解析这段代码的功能:

(一)数据加载

load fisheriris;
  • 使用load fisheriris加载内置的鸢尾花数据集,这是一个包含 150 个样本的经典数据集,每个样本有 4 个特征(萼片长度、萼片宽度、花瓣长度、花瓣宽度)和一个分类标签(3 种不同的鸢尾花品种)。加载后,数据会存储在meas变量中,类别标签存储在species变量中。 

(二)数据准备

X = meas(:, 1:4);
species = categorical(species);
  • meas(:, 1:4)提取所有样本的 4 个测量特征,创建一个 150 行 4 列的数据矩阵

  • categorical(species)将物种名称转换为分类变量,便于在图表中区分不同类别

 (三)图表创建

figure;
gplotmatrix(X, [], species);
  • figure创建一个新的图形窗口

  • gplotmatrix(X, [], species)是关键函数:

        (1)第一个参数 X:包含所有变量的数据矩阵

        (2)第二个参数 []:表示不使用额外的分组变量

        (3)第三个参数 species:用于为不同类别数据设置不同颜色

(四)撰写标题

title('Fisher''s Iris数据集散点矩阵图');
  • 使用title函数添加图表标题,增强可读性 

 (五)结果保存

saveas(gcf, '散点矩阵图.jpg');
  • 使用saveas函数将当前图形窗口 (gcf) 中的图表保存为 JPG 格式 

四、可视化解读

MATLAB 散点矩阵图:探索多维数据关系的可视化工具_第1张图片

 这张散点矩阵图展示了 Fisher's Iris 数据集中四个特征(萼片长度、萼片宽度、花瓣长度、花瓣宽度)之间的关系,并按三个鸢尾花品种(Setosa、Versicolor、Virginica)进行了颜色区分。

(一)对角线部分——展示每个特征的分布情况

  • Setosa 品种(蓝色)在花瓣长度和宽度上明显小于其他品种,形成独立的簇

  • Versicolor(橙色)和Virginica(黄色)在多数特征上有重叠,但Virginica的花瓣更大

(二)非对角线部分——呈现特征对之间的相关性

  • 花瓣长度与花瓣宽度呈现极强的正相关(散点分布接近直线)

  • 萼片长度与花瓣尺寸也有较强正相关

  • Setosa 在所有特征组合中都与其他品种完全分离,说明其形态差异显著

通过这张散点矩阵图,我们可以快速把握多维数据的内在结构,为后续的数据分析和模型选择提供直观依据。

五、总结

散点矩阵图是数据探索阶段的必备工具,通过 MATLAB 的可视化功能,我们可以:

  • 直观理解多维数据的内在结构

  • 快速识别变量间的关系和模式

  • 为后续的统计分析和机器学习提供方向

无论是科研数据分析还是商业决策支持,散点矩阵图都能帮助我们从数据中提取有价值的信息,做出更明智的决策。希望这篇博客能帮助你掌握 MATLAB 中散点矩阵图的绘制方法及其在数据分析中的应用价值!

你可能感兴趣的:(MATLAB 散点矩阵图:探索多维数据关系的可视化工具)