Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

categorical データのプロット

この例では、categorical 配列のデータをプロットする方法を示します。

サンプル データの読み込み

100 名の患者から収集されたサンプル データを読み込みます。patients MAT ファイルからの配列のデータ型とサイズを表示します。

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               

categorical 配列の作成

ワークスペース変数 Location は、患者を調査した 3 つの一意の医療施設をリストします。

より簡単にデータのアクセスと比較を行えるようにするため、Locationcategorical 配列に変換します。

Location = categorical(Location);

categorical 配列を集計します。集計結果には、各カテゴリが Location に現れる回数が示されます。

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

調査された患者は、County General Hospital では 39 名、St. Mary’s Medical Center では 24 名、VA Hospital では 37 名です。

ワークスペース変数 SelfAssessedHealthStatus には、4 つの一意な値 ExcellentFairGood および Poor が含まれています。

カテゴリに数学的な順序 Poor < Fair < Good < Excellent が付くように、SelfAssessedHealthStatus を順序 categorical 配列に変換します。

SelfAssessedHealthStatus = categorical(SelfAssessedHealthStatus,...
                           ["Poor","Fair","Good","Excellent"],"Ordinal",true);

categorical 配列 SelfAssessedHealthStatus を集計します。

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

ヒストグラムのプロット

ヒストグラムの棒グラフを SelfAssessedHealthStatus から直接作成します。この categorical 配列は、順序 categorical 配列です。カテゴリに付けられた順序 Poor < Fair < Good < Excellent によって、プロットの "x" 軸上のカテゴリの順序が決まります。関数 histogram は、4 つのカテゴリそれぞれのカテゴリ カウントをプロットします。

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

Figure contains an axes object. The axes object with title Self Assessed Health Status From 100 Patients contains an object of type categoricalhistogram.

健康状態が Fair または Poor と診断された患者のみを対象として医療施設のヒストグラムを作成します。

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

Figure contains an axes object. The axes object with title Location of Patients in Fair or Poor Health contains an object of type categoricalhistogram.

円グラフの作成

categorical 配列から直接、円グラフを作成します。

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

関数 pie は、categorical 配列 SelfAssessedHealthStatus を受け入れて、4 つのカテゴリの円グラフをプロットします。

パレート図の作成

SelfAssessedHealthStatus の 4 つの各カテゴリのカテゴリ カウントからパレート図を作成します。

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

Figure contains 2 axes objects. Axes object 1 with title Self Assessed Health Status From 100 Patients contains 2 objects of type bar, line. Axes object 2 is empty.

pareto の最初の入力引数はベクトルでなければなりません。categorical 配列が行列または多次元配列の場合は、countcats および pareto を呼び出す前に形状をベクトルに変更します。

散布図の作成

自己申告の健康状態が血圧測定値に関連するかどうかを判断します。2 つの患者グループについて Diastolic および Systolic の測定値の散布図を作成します。

最初に、2 つの患者グループについて血圧測定値の "x" 配列と "y" 配列を作成します。最初の患者グループは、各自の健康状態を Poor または Fair と申告している患者で構成されます。2 番目の患者グループは、各自の健康状態を Good または Excellent と申告している患者で構成されます。

categorical 配列 SelfAssessedHealthStatus を使用して、logical インデックスを作成できます。logical インデックスを使用して、Diastolic および Systolic からそれぞれ別の配列に値を抽出します。

X1 = Diastolic(SelfAssessedHealthStatus <= "Fair");
Y1 = Systolic(SelfAssessedHealthStatus <= "Fair");

X2 = Diastolic(SelfAssessedHealthStatus >= "Good");
Y2 = Systolic(SelfAssessedHealthStatus >= "Good");

X1 および Y1 は、健康状態が Poor または Fair の患者のデータを含む 26 行 1 列の数値配列です。

X2 および Y2 は、健康状態が Good または Excellent の患者のデータを含む 74 行 1 列の数値配列です。

2 つの患者グループの血圧測定値の散布図を作成します。プロットには、2 つのグループの示唆的な違いが表れていません。このことはおそらく、これらの患者によって申告された健康状態に血圧が影響しないことを示しています。

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

title("Blood Pressure for Groups of Patients Assessing Self Health");
xlabel("Diastolic (mm Hg)")
ylabel("Systolic (mm Hg)")
legend("Poor or Fair","Good or Excellent")

Figure contains an axes object. The axes object with title Blood Pressure for Groups of Patients Assessing Self Health, xlabel Diastolic (mm Hg), ylabel Systolic (mm Hg) contains 2 objects of type scatter. These objects represent Poor or Fair, Good or Excellent.

参考

| | | | | | |

関連するトピック