メインコンテンツ

glyphplot

    説明

    glyphplot(X) は、行列 X の多変量データからグリフ プロットを作成します。既定では、glyphplot はスター プロットを作成します。スター プロットでは、各観測値がスターとして表されます。スポーク i の長さがその観測値の変数 i の値に比例します。既定では、glyphplot はプロットの前に X の列を標準化します。

    構文 glyphplot(X,Glyph="star") は構文 glyphplot(X) と等価であることに注意してください。

    glyphplot(X,Glyph="face") は、X のデータからチャーノフのフェース プロットを作成します。チャーノフのフェース プロットでは、各観測値がフェースとして表されます。フェースの特徴 i がその観測値の変数 i の値に比例する特徴で表示されます。表示されるフェースの特徴の詳細については、フェースの特徴を参照してください。

    glyphplot(X,Glyph="face",Features=features) は、X の列 i で表されるフェースの特徴が features の要素 i で定義されるフェース プロットを作成します。表示されるフェースの特徴の詳細については、フェースの特徴を参照してください。

    glyphplot(___,Name=Value) では、前の構文におけるいずれかの入力引数の組み合わせに加えて、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、プロットの前に主成分分析 (PCA) を使用して X 内のデータを標準化できます。

    glyphplot(fig,___) は、現在の Figure (gcf) ではなく fig で指定された Figure にプロットします。 (R2024a 以降)

    g = glyphplot(___) は、Line オブジェクトおよび Text オブジェクトの配列を返します。g は、オブジェクトの作成後にそのプロパティ (Line のプロパティ または Text のプロパティ) をクエリまたは変更するのに使用します。

    すべて折りたたむ

    スター プロットを使用して多次元データを可視化します。観測値によってスターが異なることに注目します。

    fisheriris データ セットを読み込みます。このデータ セットには、3 つの種のアヤメの花による 4 種類の測定値 (萼弁の長さ、萼弁の幅、花弁の長さ、花弁の幅) が含まれています。

    load fisheriris

    行列 meas には、150 本の花についての 4 つの測定値すべてが格納されています。最初の 8 本の花の測定値を表示します。

    head(meas)
        5.1000    3.5000    1.4000    0.2000
        4.9000    3.0000    1.4000    0.2000
        4.7000    3.2000    1.3000    0.2000
        4.6000    3.1000    1.5000    0.2000
        5.0000    3.6000    1.4000    0.2000
        5.4000    3.9000    1.7000    0.4000
        4.6000    3.4000    1.4000    0.3000
        5.0000    3.4000    1.5000    0.2000
    

    meas のアヤメの測定値を使用してグリフ プロットを作成します。既定では、glyphplot はスター プロットを作成し、プロットの前に測定値を標準化します。

    glyphplot(meas)
    title("Glyph Plots for Iris Data")

    Figure contains an axes object. The axes object with title Glyph Plots for Iris Data contains 450 objects of type line, text.

    各スターがアヤメに対応し、各スポークは標準化されたアヤメの測定値のいずれかに対応します。スポークの長さは測定値の相対的な値を示します。

    最初の 50 本の花は次の 50 本の花よりもスターが小さい傾向にあることに注目してください。同様に、それらの花のセットは、どちらも最後の 50 本の花よりスターが小さい傾向にあります。

    3 つのアヤメのセットについて、それらの測定値の分布を箱ひげ図を使用して比較します。

    figure
    boxchart(meas(1:50,:))
    hold on
    boxchart(meas(51:100,:))
    boxchart(meas(101:end,:))
    hold off
    legend(["Irises 1-50","Irises 51-100","Irises 101-150"])
    xticklabels(["Sepal Length","Sepal Width","Petal Length","Petal Width"])
    title("Box Plots for Iris Data")

    Figure contains an axes object. The axes object with title Box Plots for Iris Data contains 3 objects of type boxchart. These objects represent Irises 1-50, Irises 51-100, Irises 101-150.

    箱ひげ図は、4 つの測定値のうちの 3 つについて、最初の 50 本のアヤメが次の 50 本のアヤメよりも値が小さい傾向にあり、それらのアヤメが最後の 50 本のアヤメよりも値が小さい傾向にあることを示しています。値が小さいほど対応するスターのスポークが短くなるため、この結果から前のスター プロットにおけるスターの相対的なサイズの説明がつきます。

    チャーノフのフェース プロットを使用して多次元データを可視化します。データ変数に対応するフェースの特徴を指定します。

    100 台の自動車の測定値を含む carsmall データ セットを読み込みます。AccelerationDisplacementHorsepowerMPG、および Weight の変数を組み合わせて table にします。最初の 12 台の自動車の値を表示します。

    load carsmall
    Tbl = table(Acceleration,Displacement,Horsepower,MPG,Weight);
    head(Tbl,12)
        Acceleration    Displacement    Horsepower    MPG    Weight
        ____________    ____________    __________    ___    ______
    
              12            307            130         18     3504 
            11.5            350            165         15     3693 
              11            318            150         18     3436 
              12            304            150         16     3433 
            10.5            302            140         17     3449 
              10            429            198         15     4341 
               9            454            220         14     4354 
             8.5            440            215         14     4312 
              10            455            225         14     4425 
             8.5            390            190         15     3850 
            17.5            133            115        NaN     3090 
            11.5            350            165        NaN     4142 
    

    Tbl の自動車の測定値を使用してチャーノフのフェース プロットを作成します。glyphplot では欠損値を含む観測値はプロットから除外されること、および既定ではプロットの前に自動車の測定値が標準化されることに注意してください。

    glyphplot(Tbl{:,:},Glyph="face")

    Figure contains an axes object. The axes object contains 279 objects of type line, text.

    既定では、glyphplot は、フェースの大きさを使用して最初の変数 (ここでは Acceleration) を表します。額から顎までの相対的な弧の長さは 2 番目の変数 (Displacement)、額の形は3 番目の変数 (Horsepower)、顎の形は 4 番目の変数 (MPG)、目の間の幅は 5 番目の変数 (Weight) を表します。詳細については、フェースの特徴を参照してください。

    MPG 変数は表示せずに、代わりに Weight 変数を顎の形で表すように前のプロットを変更します。

    figure
    glyphplot(Tbl{:,:},Glyph="face",Features=[1 2 3 0 4])

    Figure contains an axes object. The axes object contains 297 objects of type line, text.

    欠損値を含んでいた MPG 変数をプロットに表示しないようにしたため、前のプロットで省略されていた一部の観測値がプロットに含まれるようになります。

    グリフ プロットにおけるグリフのレイアウトを指定します。グリフをプロットするグリッド、またはグリフの中心の位置を指定できます。

    100 台の自動車の測定値を含む carsmall データ セットを読み込みます。AccelerationDisplacementHorsepowerMPG、および Weight の変数を組み合わせて table にします。最初の 12 台の自動車の値を表示します。

    load carsmall
    Tbl = table(Acceleration,Displacement,Horsepower,MPG,Weight);
    head(Tbl,12)
        Acceleration    Displacement    Horsepower    MPG    Weight
        ____________    ____________    __________    ___    ______
    
              12            307            130         18     3504 
            11.5            350            165         15     3693 
              11            318            150         18     3436 
              12            304            150         16     3433 
            10.5            302            140         17     3449 
              10            429            198         15     4341 
               9            454            220         14     4354 
             8.5            440            215         14     4312 
              10            455            225         14     4425 
             8.5            390            190         15     3850 
            17.5            133            115        NaN     3090 
            11.5            350            165        NaN     4142 
    

    Tbl の自動車の測定値を使用してスター プロットを作成します。スターを 8 行 12 列のグリッドに配置します。

    glyphplot(Tbl{:,:},Grid=[8 12])

    Figure contains an axes object. The axes object contains 279 objects of type line, text.

    グリッドが 8 行 12 列であるため、プロットには最大で 96 個の観測値を表示できます。ここでは、Tbl 内の欠損値がないすべての観測値がプロットに含まれています。既定では、glyphplotTbl 内の観測値のインデックスで各グリフにラベルを付けます。

    スターを 2 行 2 列のグリッドに表示します。名前と値の引数 Page を使用して、表示するスターのセットを指定します。ここでは、最初の 2 セットのスターを表示します。

    figure
    tiledlayout(1,2)
    nexttile
    glyphplot(Tbl{:,:},Grid=[2 2])
    title("First Set of Stars")
    nexttile
    glyphplot(Tbl{:,:},Grid=[2 2],Page=2)
    title("Second Set of Stars")

    Figure contains 2 axes objects. Axes object 1 with title First Set of Stars contains 12 objects of type line, text. Axes object 2 with title Second Set of Stars contains 12 objects of type line, text.

    Page を数値ベクトルまたは "all" として指定して、複数のページを連続して表示することもできます。glyphplot の呼び出し後、Enter キーを押すと次のグリフのページが表示されます。

    あるいは、スクロール バーをもつ 1 つのプロットにすべてのスターのセットを表示します。

    glyphplot(Tbl{:,:},Grid=[2 2],Page="scroll")

    Figure contains an axes object and an object of type uicontrol. The axes object contains 279 objects of type line, text.

    グリフのグリッドを作成する代わりに、グリフの中心の位置を指定できます。

    最初の 4 台の自動車のスターをプロットします。glyphplot に渡す前にデータ セットを標準化します。そうしないと、関数はプロットの前にデータ セット全体ではなく 4 つの観測値のみを標準化します。スターの中心の位置を行列として指定します。行 "i" がスターの中心 "i""x" 軸の値と "y" 軸の値にそれぞれ対応します。最大のスターの半径を 0.5 と指定します。スターを比較しやすいように、グリッド ラインをプロットに追加します。

    figure
    X = normalize(Tbl{:,:},"range",[0.1 0.9]);
    glyphplot(X(1:4,:),Centers=[1 2; 2 2; 1 1; 2 1],Radius=0.5, ...
        Standardize="off")
    grid on

    Figure contains an axes object. The axes object contains 8 objects of type line.

    グリフの中心の位置を指定する場合、グリフ プロットに観測値のラベルは含まれません。

    glyphplot の呼び出しでいくつかのプロット プロパティを設定して、グリフ プロットの外観を調整します。また、プロットの作成後にその外観を変更して調整します。

    fisheriris データ セットを読み込みます。このデータ セットには、3 つの種のアヤメの花による 4 種類の測定値 (萼弁の長さ、萼弁の幅、花弁の長さ、花弁の幅) が含まれています。

    load fisheriris

    行列 meas には、150 本の花についての 4 つの測定値すべてが格納されています。cell 配列 species には、150 本の花のそれぞれに対する種の名前が格納されています。

    それぞれの花のインデックスと種の名前を格納する label という名前の新しい変数を作成します。

    index = (1:150)';
    label = index + "-" + species;

    meas のアヤメの測定値を使用してスター プロットを作成し、label 変数を使用して各スターにラベルを付けます。スターの色を薄い緑と指定します。glyphplot の呼び出しでラインのプロパティ (Color など) を指定すると、関数はそのプロパティの値をプロット内のすべてのグリフに対して設定します。簡単にするために、49 から 60 までの花を 4 行 3 列のグリッドに表示します。

    プロットの作成後にその外観を変更するには、Line オブジェクトおよび Text オブジェクトの配列 s を返します。

    lightGreen = [0.4660 0.6740 0.1880];
    
    s = glyphplot(meas,ObsLabels=label, ...
        Color=lightGreen, ...
        Grid=[4 3],Page=5);

    Figure contains an axes object. The axes object contains 36 objects of type line, text.

    花 51 に対応するスターについて、スターの周囲長の色、スターのスポークの色、スターのラベルのフォントを変更します。

    purple = [0.4940 0.1840 0.5560];
    lightBlue = [0.3010 0.7450 0.9330];
    
    s(3,1).Color = purple;
    s(3,2).Color = lightBlue;
    s(3,3).FontWeight = "bold";

    Figure contains an axes object. The axes object contains 36 objects of type line, text.

    花 51 に対応するスターで、輪郭が紫、スポークが薄い青、ラベルが太字になります。

    スター プロットの代わりにフェース プロットを使用して前のプロットを再作成します。Line オブジェクトおよび Text オブジェクトの配列 f を返して変更します。

    figure
    f = glyphplot(meas,Glyph="face",ObsLabels=label, ...
        Color=lightGreen, ...
        Grid=[4 3],Page=5);
    f(3,1).Color = purple;
    f(3,2).Color = lightBlue;
    f(3,3).FontWeight = "bold";

    Figure contains an axes object. The axes object contains 36 objects of type line, text. One or more of the lines displays its values using only markers

    花 51 に対応するフェースで、フェースが紫、目が薄い青、ラベルが太字になります。

    入力引数

    すべて折りたたむ

    多変量データ。数値行列として指定します。X の行は観測値に対応し、列は変数に対応します。

    glyphplot は、プロットする変数のいずれかに欠損 (NaN) 値のある観測値は表示しません。

    例: rand(100,10)

    データ型: single | double

    プロットする変数とそれに対応するフェースの特徴。範囲 [0,17] の整数値のベクトルとして指定します。features(i) は変数 X(:,i) のフェースの特徴を示します。詳細については、フェースの特徴を参照してください。features の長さは X の列数と等しくなければなりません。プロットしない変数に対しては値を 0 と指定します。

    例: [1 0 7 0] は、1 つ目の変数をフェースの大きさを使用して表し、3 つ目の変数を目の高さを使用して表すように指定します。

    データ型: single | double

    プロットの Figure。Figure オブジェクトとして指定します。Figure オブジェクトの作成の詳細については、figure を参照してください。

    名前と値の引数

    すべて折りたたむ

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

    例: glyphplot(X,Grid=[3 2],Page=5) は、グリフの 5 ページ目を 3 行 2 列のレイアウトで表示するように指定します。

    グリフのレイアウト。2 つの正の整数のベクトルとして指定します。最初の値はプロットにおけるグリフの行数を示し、2 番目の値は列数を示します。

    観測値の数がグリッド レイアウトのエントリ数 (つまり行数と列数の積) より少ない場合、一部のグリッド エントリが空になります。観測値の数がグリッド エントリの数より多い場合は、名前と値の引数 Page を使用して、表示するグリフのページを指定できます。

    グリフのレイアウトの指定にはグリッド (Grid) またはグリフの中心位置 (Centers) のいずれかを使用し、両方は使用しません。例については、グリフのレイアウトの指定を参照してください。

    例: Grid=[5 10]

    データ型: single | double

    表示するグリフのページ。数値ベクトル、"all"、または "scroll" として指定します。

    • Page が数値ベクトルの場合、glyphplot は指定されたページを Enter キーを押したときに連続して表示します。

    • Page"all" の場合、glyphplot はすべてのページを Enter キーを押したときに連続して表示します。

    • Page"scroll" の場合、glyphplot はスクロール バーをもつ 1 つのプロットを表示します。グリフの他のページを表示するにはスクロール バーを使用します。

    この値は、グリッド (Grid) を使用してグリフのレイアウトを指定する場合以外は glyphplot で無視されます。

    例: Page=2

    例: Page=1:4

    例: Page="scroll"

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

    グリフの中心の位置。2 列の数値行列として指定します。Centers の各行は X の観測値に対応します。最初のエントリは中心の x 軸座標に対応し、2 番目のエントリは y 軸座標に対応します。

    グリフのレイアウトの指定にはグリッド (Grid) またはグリフの中心位置 (Centers) のいずれかを使用し、両方は使用しません。例については、グリフのレイアウトの指定を参照してください。Centers の値は、グリッド (Grid) を使用してグリフのレイアウトを指定する場合は glyphplot で無視されます。

    例: Centers=[1 1; 1 2; 1 3; 1 4; 2 1; 2 2; 2 3; 2 4]

    データ型: single | double

    最大のグリフの半径。正のスカラーとして指定します。関数は、最大のグリフの半径が Radius の値と等しくなるようにスケーリングします。

    この値は、グリフの中心位置 (Centers) を使用してグリフのレイアウトを指定する場合以外は glyphplot で無視されます。

    例: Radius=0.5

    データ型: single | double

    観測値のラベル。文字配列、string 配列、または文字ベクトルの cell 配列として指定します。ラベルは X の観測値ごとに指定します。空のラベルには "" または '' を使用します。

    グリフの中心位置 (Centers) を使用してグリフのレイアウトを指定する場合、glyphplot は観測値のラベルを表示しません。

    例: ObsLabels=["iris1","iris2","iris3","iris4","iris5"]

    データ型: char | string | cell

    プロットの前にデータを標準化する方法。次の表の値のいずれかとして指定します。

    説明
    "column"X の各列を区間 [0,1] に個別にマッピングします。
    "matrix"行列 X 全体を区間 [0,1] にマッピングします。
    "pca"X を固有値の降順で主成分スコアに変換し、それぞれを区間 [0,1] にマッピングします。
    "off"標準化されていない X データを使用します。X に負の値があると、スター プロットとして解釈できなくなることがあります。

    主成分分析の詳細については、pca を参照してください。

    例: Standardize="pca"

    データ型: char | string

    変数のラベル。文字配列、string 配列、または文字ベクトルの cell 配列として指定します。glyphplot 関数は、グリフのデータ ヒントに変数のラベルを含めます。ラベルは X の変数ごとに指定します。空のラベルには "" または '' を使用します。

    既定では、変数のラベルは、最初の変数が Variable 1、2 番目の変数が Variable 2 のようになります。

    例: VarLabels=["Sepal Length","Sepal Width","Petal Length","Petal Width"]

    データ型: char | string | cell

    出力引数

    すべて折りたたむ

    プロットの変更に使用するオブジェクト。Line オブジェクトおよび Text オブジェクトの配列として返されます。

    • スター プロットの場合、g(:,1) にスターの周囲長の Line オブジェクトが格納され、g(:,2) にスポークの Line オブジェクトが格納されます。

    • フェース プロットの場合、g(:,1) に目を除くすべてのフェースの特徴の Line オブジェクトが格納され、g(:,2) に目の Line オブジェクトが格納されます。

    ラベルがある場合は、その Text オブジェクトが g(:,3) に格納されます。

    詳細

    すべて折りたたむ

    ヒント

    • Line のプロパティ に記載されているプロパティの場合、プロパティの名前と値を指定することによりグリフの特性を変更できます。しかし、このアプローチではプロット内のグリフすべてに変更が適用されます。特定のグリフのみを変更するには、Line オブジェクトを返す構文を使用し、ドット表記を使用して各オブジェクトのプロパティを個別に調整します。例については、グリフ プロットの外観の調整を参照してください。

    バージョン履歴

    R2006a より前に導入

    すべて展開する