Main Content

parallelcoords

説明

parallelcoords(x) は、行列 x 内の多変量データの平行座標プロットを作成します。平行座標プロットを使用すると、高次元データを可視化することができ、座標のインデックスに対してプロットされる一連の座標値によって各観測値が表されます。

parallelcoords(x,Name,Value) は、1 つ以上の Name,Value ペア引数で指定された追加オプションを使用して平行座標プロットを作成します。たとえば、x 内のデータを標準化したり、プロットの横軸にある座標の目盛りにラベルを付けることができます。

parallelcoords(ax,___) は、前の構文のいずれかを使用し、axes グラフィックス オブジェクト ax で指定された座標軸を使用して平行座標プロットを作成します。

h = parallelcoords(___) は、parallelcoords によって作成された Line オブジェクトに対するハンドルの列ベクトルを返します。x の各行に 1 つずつのハンドルが対応します。

すべて折りたたむ

フィッシャーのアヤメの標本データを読み込みます。

load fisheriris

データには、3 つの種のアヤメの花による 4 種類の測定値 (萼弁の長さ、萼弁の幅、花弁の長さ、花弁の幅) が含まれています。行列 meas には、150 本の花のそれぞれについて 4 つの測定値すべてが格納されています。cell 配列 species には、150 本の花のそれぞれに対する種の名前が格納されています。

標本データの各測定値変数の名前が格納されている cell 配列を作成します。

labels = {'Sepal Length','Sepal Width','Petal Length','Petal Width'};

meas 内の測定値データを使用して平行座標プロットを作成します。species で指定されている各グループについて異なる色を使用します。変数名を使用して横軸にラベルを付けます。

parallelcoords(meas,'Group',species,'Labels',labels)

Figure contains an axes object. The axes object with ylabel Coordinate Value contains 150 objects of type line. These objects represent setosa, versicolor, virginica.

作成されるプロットには、各観測 (花) について 1 つずつのラインが含まれています。各ラインの色は花の種を示します。

フィッシャーのアヤメの標本データを読み込みます。

load fisheriris

データには、3 つの種のアヤメの花による 4 種類の測定値 (萼弁の長さ、萼弁の幅、花弁の長さ、花弁の幅) が含まれています。行列 meas には、150 本の花のそれぞれについて 4 つの測定値すべてが格納されています。cell 配列 species には、150 本の花のそれぞれに対する種の名前が格納されています。

標本データの各測定値変数の名前が格納されている cell 配列を作成します。

labels = {'Sepal Length','Sepal Width','Petal Length','Petal Width'};

meas 内の測定値データを使用して平行座標プロットを作成します。species で指定されている各グループについて、中央値と 25% および 75% の四分位数の値のみをプロットします。変数名を使用して横軸にラベルを付けます。

parallelcoords(meas,'group',species,'labels',labels,... 
               'quantile',.25)

Figure contains an axes object. The axes object with ylabel Coordinate Value contains 9 objects of type line. These objects represent setosa, versicolor, virginica.

プロットでは、各グループの中央値が実線で、分位数の値が同じ色の点線で示されています。たとえば、青い実線は setosa 種のアヤメの各変数について評価した中央値を示します。青い実線の下にある青い点線は、setosa 種のアヤメの各変数に対する測定値の 25 番目の百分位数を示します。青い実線の上にある青い点線は、setosa 種のアヤメの各変数に対する測定値の 75 番目の百分位数を示します。

フィッシャーのアヤメの標本データを読み込みます。

load fisheriris

データには、3 つの種のアヤメの花による 4 種類の測定値 (萼弁の長さ、萼弁の幅、花弁の長さ、花弁の幅) が含まれています。行列 meas には、150 本の花のそれぞれについて 4 つの測定値すべてが格納されています。cell 配列 species には、150 本の花のそれぞれに対する種の名前が格納されています。

標本データの各測定値変数の名前が格納されている cell 配列を作成します。

labels = {'Sepal Length','Sepal Width','Petal Length','Petal Width'};

meas 内の測定値データを使用して平行座標プロットを作成します。species で指定されている各グループについて、中央値と 25% および 75% の四分位数の値のみをプロットします。変数名を使用して横軸にラベルを付けます。ラインの幅を 2 に設定します。

parallelcoords(meas,'group',species,'labels',labels,... 
               'quantile',.25,'LineWidth',2)

Figure contains an axes object. The axes object with ylabel Coordinate Value contains 9 objects of type line. These objects represent setosa, versicolor, virginica.

この方法で 'LineWidth' を指定すると、プロット内のラインすべての幅が 2 に設定されます。

平行座標プロットを再作成します。ただし、今回はハンドルを使用して、setosa グループのアヤメに対する各測定値の中央値を表すラインのみの幅を太くします。

h = parallelcoords(meas,'group',species,'labels',labels,... 
               'quantile',.25)

Figure contains an axes object. The axes object with ylabel Coordinate Value contains 9 objects of type line. These objects represent setosa, versicolor, virginica.

h = 
  9x1 Line array:

  Line    (median)
  Line    (lower quantile)
  Line    (upper quantile)
  Line    (median)
  Line    (lower quantile)
  Line    (upper quantile)
  Line    (median)
  Line    (lower quantile)
  Line    (upper quantile)

返された列ベクトル h には、parallelcoords によって作成された各 line オブジェクトに対応するハンドルが格納されています。たとえば、h(1) は 1 番目のグループ化変数 (setosa) の中央値を表すラインに対応しています。

ドット表記を使用して、setosa グループのアヤメに対する各測定値の中央値を示すラインの幅を太くします。

h(1).LineWidth = 2;

Figure contains an axes object. The axes object with ylabel Coordinate Value contains 9 objects of type line. These objects represent setosa, versicolor, virginica.

入力引数

すべて折りたたむ

多変量入力データ。n 行 p 列の数値行列を指定します。n は x の行数で、各行は x 内の観測値に対応します。p は x の列数で、各列は x 内の変数に対応します。

parallelcoordsx 内の NaN 値を欠損値として扱い、これらの座標値をプロットしません。

データ型: single | double

プロットの座標軸。axes グラフィックス オブジェクトを指定します。ax を指定しなかった場合、parallelcoords は、現在の座標軸を使用してプロットを作成します。axes グラフィックス オブジェクトを作成する方法の詳細については、axesAxes のプロパティ を参照してください。

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。

R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。

例: 'Group',species,'Quantile',.25 は、変数 species で指定された各グループについて異なる色を使用して、入力データの中央値と 25% および 75% の四分位値をプロットします。

入力データのグループ化変数。'Group' と各観測値のグループ インデックスが格納されている数値配列から構成されるコンマ区切りのペアとして指定します。あるいは、配列を各観測値のグループ名が格納されているカテゴリカル変数、文字行列、string 配列または cell 配列にすることができます。

データ型: single | double | categorical | char | string | cell

横軸のラベル。'Labels' とラベル名が格納されている文字配列、string 配列または cell 配列から構成されるコンマ区切りのペアとして指定します。

例: 'Labels',{'Sepal Width','Sepal Length'}

データ型: char | string | cell

プロットする入力データの分位数。'Quantile' と (0,1) の範囲にある数値から構成されるコンマ区切りのペアとして指定します。alpha という値を 'Quantile' に対して指定した場合、parallelcoordsx 内の各変数 (列) の中央値、分位数 alpha および分位数 1 – alpha のみをプロットします。

x に多数の観測値が含まれている場合は、分位数プロット オプションで得られるデータの要約が役立ちます。

例: 'Quantile',.25

データ型: single | double

入力データを標準化する方法。'Standardize' と次のいずれかから構成されるコンマ区切りのペアとして指定します。

'on'プロットを行う前に、平均が 0、標準偏差が 1 になるように x の各列をスケーリングします。
'PCA'固有値の降順で x の主成分スコアからプロットを作成します。PCA 標準化の場合、parallelcoords は欠損値 (NaN) が含まれている x の行を除外します。
'PCAStd'標準化された主成分スコアを使用してプロットを作成します。

例: 'Standardize','on'

ヒント
  • Line のプロパティ に記載されているプロパティの場合、プロパティの名前と値を指定することによりプロットするラインの特性を変更できます。しかし、このアプローチではプロット内のラインすべてに変更が適用されます。特定のラインのみを変更するには、グラフィックス ハンドルを返す構文を使用し、ドット表記を使用して各ラインのプロパティを個別に調整します。実例については、平行座標プロットのラインのプロパティの調整を参照してください。

出力引数

すべて折りたたむ

line オブジェクトのグラフィックス ハンドル。Line グラフィックス ハンドルのベクトルとして返されます。グラフィックス ハンドルは、プロットの特定のラインのプロパティをクエリおよび変更するために使用できる一意な識別子です。line オブジェクトのプロパティを表示および設定するには、ドット表記を使用します。ドット表記の使用法の詳細については、プロパティ値へのアクセスを参照してください。設定できる Line オブジェクトのプロパティの詳細については、Line のプロパティ を参照してください。

名前と値のペアの引数 'Quantile' を使用した場合、作成される 3 つの line オブジェクトのそれぞれについて 1 つずつのハンドルが h に格納されます。名前と値のペアの引数 'Quantile' および 'Group' の両方の名前と値のペアの引数を使用した場合、各グループに対して 3 つずつのハンドルが h に格納されます。

代替機能

または、関数 parallelplot を使用して ParallelCoordinatesPlot オブジェクトを作成できます。

  • 関数 parallelcoords と異なり、parallelplot ではカテゴリカル変数が含まれている表形式データをプロットできます。

  • parallelplot は、数値データに対する分位数のプロットをサポートしません。ただし、ParallelCoordinatesPlot オブジェクトには DataNormalization プロパティが含まれており、数値による座標に対するデータ正規化メソッドがいくつか用意されています。

このオブジェクトの外観と動作を制御するには、ParallelCoordinatesPlot のプロパティ を変更します。

バージョン履歴

R2006a より前に導入