MATLAB 基础知识 数据类型 分组数组 对分类数据绘图

本文演示了如何对分类数组中的数据绘图。

加载样本数据

加载从 100 位患者收集的样本数据。

load patients

whos
  Name                            Size            Bytes  Class      Attributes

  Age                           100x1               800  double               
  Diastolic                     100x1               800  double               
  Gender                        100x1             11412  cell                 
  Height                        100x1               800  double               
  LastName                      100x1             11616  cell                 
  Location                      100x1             14208  cell                 
  SelfAssessedHealthStatus      100x1             11540  cell                 
  Smoker                        100x1               100  logical              
  Systolic                      100x1               800  double               
  Weight                        100x1               800  double      

基于字符向量元胞数组创建分类数组

工作区变量 Location 是一个字符向量元胞数组,它包含患者就医的三个唯一医疗机构。

为了更方便地访问和比较数据,请将 Location 转换为一个分类数组。

Location = categorical(Location);

汇总分类数组。

summary(Location)
     County General Hospital        39 
     St. Mary's Medical Center      24 
     VA Hospital                    37 

39 位患者在 County General Hospital 就医,24 位患者在 St. Mary’s Medical Center 就医,37 位患者在 VA Hospital 就医。

工作区变量 SelfAssessedHealthStatus 包含四个唯一值 Excellent、Fair、Good 和 Poor。

将 SelfAssessedHealthStatus 转换为一个有序分类数组,这样这些类别采用数学排序 Poor < Fair < Good < Excellent。

SelfAssessedHealthStatus = categorical(SelfAssessedHealthStatus,...
    {'Poor' 'Fair' 'Good' 'Excellent'},'Ordinal',true);

汇总分类数组 SelfAssessedHealthStatus。

summary(SelfAssessedHealthStatus)
     Poor           11 
     Fair           15 
     Good           40 
     Excellent      34 

绘制直方图

直接基于分类数组创建一个直方条形图。

figure
histogram(SelfAssessedHealthStatus)
title('Self Assessed Health Status From 100 Patients')

在这里插入图片描述

函数 histogram 接受分类数组 SelfAssessedHealthStatus,并对四个类别中的每一个类别绘制类别计数。

仅为健康状况评估为 Fair 或 Poor 的患者绘制医院位置直方图。

figure
histogram(Location(SelfAssessedHealthStatus<='Fair'))
title('Location of Patients in Fair or Poor Health')

在这里插入图片描述

创建饼图

从分类数组直接创建饼图。

figure
pie(SelfAssessedHealthStatus);
title('Self Assessed Health Status From 100 Patients')

在这里插入图片描述

函数 pie 接受分类数组 SelfAssessedHealthStatus,并绘制了一个包含四个类别的饼图。

创建帕累托图

根据 SelfAssessedHealthStatus 的四个类别各自的类别计数创建帕累托图。

figure
A = countcats(SelfAssessedHealthStatus);
C = categories(SelfAssessedHealthStatus);
pareto(A,C);
title('Self Assessed Health Status From 100 Patients')

在这里插入图片描述

pareto 的第一个输入参数必须是向量。如果分类数组为矩阵或多维数组,则在调用 countcats 和 pareto 之前将其重构为向量。

创建散点图

将字符向量元胞数组转换为分类数组。

Gender = categorical(Gender);
汇总分类数组 Gender。

summary(Gender)
     Female      53 
     Male        47 

Gender 是一个 100×1 的分类数组,包含两个类别 Female 和 Male。

使用分类数组 Gender 分别访问每种性别的 Weight 和 Height。

X1 = Weight(Gender=='Female');
Y1 = Height(Gender=='Female');

X2 = Weight(Gender=='Male');
Y2 = Height(Gender=='Male');

X1 和 Y1 是 53×1 的数值数组,包含女性患者的数据。

X2 和 Y2 是 47×1 的数值数组,包含男性患者的数据。

创建一个身高与体重的散点图。使用一个圈指示女性患者的数据,使用一个叉指示男性患者的数据。

figure
h1 = scatter(X1,Y1,'o');
hold on
h2 = scatter(X2,Y2,'x');

title('Height vs. Weight')
xlabel('Weight (lbs)')
ylabel('Height (in)')

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

结冰架构

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值