本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

对分类数据绘图

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

加载样本数据

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

load patients

whos
  Name                            Size            Bytes  Class      Attributes

  Age                           100x1               800  double               
  Diastolic                     100x1               800  double               
  Gender                        100x1             12212  cell                 
  Height                        100x1               800  double               
  LastName                      100x1             12416  cell                 
  Location                      100x1             15008  cell                 
  SelfAssessedHealthStatus      100x1             12340  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 包含四个唯一值 ExcellentFairGoodPoor

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,并对四个类别中的每一个类别绘制类别计数。

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

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 的第一个输入参数必须是向量。如果分类数组为矩阵或多维数组,则在调用 countcatspareto 之前将其重构为向量。

创建散点图

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

Gender = categorical(Gender);

汇总分类数组 Gender

summary(Gender)
     Female      53 
     Male        47 

Gender 是一个 100×1 的分类数组,包含两个类别 FemaleMale

使用分类数组 Gender 分别访问每种性别的 WeightHeight

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

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

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

X2Y2 是 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)')

另请参阅

| | | | | | |

相关主题