biplot
バイプロット
説明
biplot(
は、行列 coefs
)coefs
内の係数のバイプロットを作成します。バイプロットは、coefs
の列数が 2 の場合は 2 次元、3 の場合は 3 次元になります。バイプロットの座標軸は coefs
の列を、バイプロットのベクトルは coefs
の行 (観測された変数) を表します。
biplot(
では、1 つ以上の名前と値のペアの引数を使用して追加オプションを指定します。たとえば、coefs
,Name,Value
)'Positive','true'
を指定すると、バイプロットを正の象限 (2 次元または 3 次元) に制限できます。
は、h
= biplot(___)biplot
で作成されるグラフィックス オブジェクトへのハンドルの列ベクトルを返します。h
を使用して、特定のグラフィックス オブジェクトのプロパティのクエリと変更を行います。詳細については、グラフィックス オブジェクトのプロパティを参照してください。
例
係数とスコアのバイプロット
最初の 3 つの主成分の係数、観測値、および carsmall
データセットの観測された変数からバイプロットを作成します。
標本データを読み込みます。
load carsmall
変数 Acceleration
、Displacement
、Horsepower
、MPG
および Weight
から構成される行列を作成します。この行列から、欠損値が含まれている行を削除します。
X = [Acceleration Displacement Horsepower MPG Weight]; X = rmmissing(X);
X
を標準化し、主成分分析を実行します。
Z = zscore(X); % Standardized data
[coefs,score] = pca(Z);
5 行 5 列の行列 coefs
には、主成分の係数が格納されます (各主成分に対して 1 列)。行列 score
には、主成分のスコア (観測値) が格納されます。
最初の 3 つの主成分の係数からバイプロットを作成します。バイプロットの座標軸は coefs
の列を、バイプロットのベクトルは coefs
の行を表します。
biplot(coefs(:,1:3))
各変数にラベルを付け、最初の 3 つの主成分からなる空間に観測値をプロットすることにより、より詳細なバイプロットを作成します。
vbls = {'Accel','Disp','HP','MPG','Wgt'}; % Labels for the variables biplot(coefs(:,1:3),'Scores',score(:,1:3),'VarLabels',vbls);
バイプロットの座標軸の特定
fisheriris
データセットを読み込み、花の測定値を meas
で標準化し、主成分分析を実行します。
load fisheriris
Z = zscore(meas);
[coefs,scores] = pca(Z);
2 つのサブプロットを使用して Figure を作成し、ax1
および ax2
として Axes
オブジェクトを返します。対応する Axes
オブジェクトを参照して、各座標軸のセットでバイプロットを作成します。上のサブプロットに、最初の 2 つの主成分を使用してバイプロットを表示します。下のサブプロットに、3 番目と 4 番目の主成分を使用してバイプロットを表示します。対応する Axes
オブジェクトを関数 xlim
と ylim
に渡して、X 軸と Y 軸の範囲を指定します。ax2
を xlabel
と ylabel
に渡して、下のプロットの X 軸と Y 軸のラベルを変更します。
figure('Units','normalized','Position',[0.3 0.3 0.3 0.5]) variables = {'SepalLength','SepalWidth','PetalLength','PetalWidth'}; ax1 = subplot(2,1,1); % Top subplot biplot(ax1,coefs(:,1:2),'Scores',scores(:,1:2),'VarLabels',variables); xlim(ax1,[-1 1]) ylim(ax1,[-1 1]) ax2 = subplot(2,1,2); % Bottom subplot biplot(ax2,coefs(:,3:4),'Scores',scores(:,3:4),'VarLabels',variables); xlim(ax2,[-1 1]) ylim(ax2,[-1 1]) xlabel(ax2,'Component 3') ylabel(ax2,'Component 4')
バイプロットのプロパティの変更
サポートされている line プロパティの名前と値を指定し、biplot
によって作成されたグラフィックス オブジェクトのハンドルを使用することにより、バイプロットの外観を制御します。
標本データを読み込みます。
load carsmall
変数 Acceleration
、Displacement
および MPG
から構成される行列を作成します。この行列から、欠損値が含まれている行を削除します。
X = [Acceleration Displacement MPG]; X = rmmissing(X);
X
を標準化し、主成分分析を実行します。
Z = zscore(X); % Standardized data
[coefs,score] = pca(Z);
3 行 3 列の行列 coefs
には、主成分の係数が格納されます (各主成分に対して 1 列)。行列 score
には、主成分のスコア (観測値) が格納されます。
最初の 2 つの主成分からなる平面に、観測値のバイプロットを作成します。バイプロットには、既定のプロパティを使用します。
h = biplot(coefs(:,1:2),'Scores',score(:,1:2));
h
は、グラフィックス オブジェクトのハンドルのベクトルです。biplot
によって返された line オブジェクトのプロパティを変更できます。
識別を容易にするため、3 つの変数にラベルを付けます。すべての line オブジェクトに対して、マーカー記号として円を、ラインの色として青を指定します。
vbls = {'Accel','Disp','MPG'}; % Array of variable labels h1 = biplot(coefs(:,1:2),'Scores',score(:,1:2),... 'Color','b','Marker','o','VarLabels',vbls);
h1
は、グラフィックス オブジェクトのハンドルのベクトルです。h1
の最初のいくつかの要素を表示します。
h1(1:10) % First ten object handles
ans = 10x1 graphics array: Line (varline) Line (varline) Line (varline) Line (varmarker) Line (varmarker) Line (varmarker) Text (varlabel) Text (varlabel) Text (varlabel) Line (obsmarker)
変数ラベルのハンドル (h1(7:9)
) はテキストです。したがって、line プロパティについて指定した設定はこれらのラベルに影響を与えません。
最初の 2 つの主成分からなる平面に別の観測値のバイプロットを作成し、識別を容易にするため 3 つの変数にラベルを付けます。
h2 = biplot(coefs(:,1:2),'Scores',score(:,1:2),'VarLabels',vbls);
h2
は、グラフィックス オブジェクトのハンドルのベクトルです。h2
の最初のいくつかの要素を表示します。
h2(1:10) % First ten object handles
ans = 10x1 graphics array: Line (varline) Line (varline) Line (varline) Line (varmarker) Line (varmarker) Line (varmarker) Text (varlabel) Text (varlabel) Text (varlabel) Line (obsmarker)
h2
には 104 個のオブジェクト ハンドルが含まれています。
最初の 3 つのハンドル (
h(1:3)
) は、3 つの変数の line ハンドルに対応します。ハンドル
h(4:6)
は、3 つの変数のマーカー ハンドルに対応します。ハンドル
h(7:9)
は、3 つの変数のテキスト ハンドルに対応します。次の 94 個のハンドルは、観測値の line ハンドルに対応します。
最後のハンドルは、座標軸の line ハンドルに対応します。
グラフィックス オブジェクトのハンドルを使用して、バイプロットの特定のプロパティを変更します。
変数 (ベクトル) のラインの色を変更します。
for k = 1:3 h2(k).Color = 'r'; % Specify red as the line color end
変数ラベルのフォントを変更します。
for k = 7:9 h2(k).FontWeight = 'bold'; % Specify bold font end
観測値マーカーの色を変更します。
for k = 10:103 h2(k).MarkerEdgeColor = 'k'; % Specify black color for the observations end
入力引数
ax
— プロットの座標軸
Axes
オブジェクト
プロットの座標軸。Axes
オブジェクトとして指定します。ax
を指定しない場合、biplot
は、現在の座標軸を使用してプロットを作成します。Axes
オブジェクトを作成する方法の詳細については、axes
を参照してください。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: biplot(coefs,'VarLabels',varlabels)
は、配列 varlabels
内のテキストで各ベクトル (変数) にラベルを付けます。
Scores
— スコア
行列
スコア。'Scores'
と、列数が coefs
と同じである行列から構成されるコンマ区切りのペアとして指定します。通常、Scores
には、pca
で作成した主成分のスコアまたは factoran
で推定した因子スコアを格納します。関数 biplot
は、Scores
(観測値) の各行を点として、coefs
(観測された変数) の各行をベクトルとして表します。
例: 'Scores',score(:,1:3)
データ型: single
| double
VarLabels
— 変数のラベル
文字配列 | string 配列 | cell 配列
変数のラベル。'VarLabels'
と文字配列、string 配列または cell 配列から構成されるコンマ区切りのペアとして指定します。biplot
は、この配列内のテキストを使用して各ベクトル (観測された変数) にラベルを付けます。
例: 'VarLabels',varlabels
データ型: char
| string
| cell
ObsLabels
— 観測値のラベル
文字配列 | string 配列 | cell 配列
観測値のラベル。'ObsLabels'
と文字配列、string 配列または cell 配列から構成されるコンマ区切りのペアとして指定します。biplot
は、データ カーソルを表示するときに、この配列内のテキストを観測値の名前として使用します。
例: 'ObsLabels',obslabels
データ型: char
| string
| cell
Positive
— 正の座標にプロットするためのインジケーター
false
(既定値) | true
正の座標におけるプロットのインジケーター。'Positive'
と次のいずれかの logical 値から構成されるコンマ区切りのペアとして指定します。
値 | 説明 |
---|---|
false | すべての座標で範囲 |
true | バイプロットを正の象限 (2 次元または 3 次元) に制限します。 |
例: 'Positive',true
データ型: logical
PropertyName
— プロパティ名
サポートされる line プロパティの値
プロパティ名。プロパティ名と、サポートされる 1 つ以上の Line のプロパティに関連付けられている値から構成されるコンマ区切りのペアとして指定します。これらのプロパティは、biplot
によって作成されるすべてのプリミティブな line グラフィックス オブジェクトの名前と値です。指定したプロパティ名は、グラフィックス オブジェクトの外観と動作を制御します。
例: 'Marker','square','MarkerSize',10
出力引数
h
— グラフィックス オブジェクトのハンドル
列ベクトル
biplot
によって作成されたグラフィックス オブジェクトのハンドル。列ベクトルとして返されます。このベクトルには、次の順序でハンドルが格納されます。
変数に対応するハンドル (line ハンドル、マーカー ハンドル、テキスト ハンドルの順)
観測値に対応するハンドル (マーカー ハンドル、テキスト ハンドルの順)
座標軸の line に対応するハンドル
これらのハンドルを使用して、特定のグラフィックス オブジェクトのプロパティのクエリと変更を行うことができます。詳細については、グラフィックス オブジェクト ハンドルおよびグラフィックス配列を参照してください。
アルゴリズム
バイプロットを使用すると、最初の 2 つまたは 3 つの主成分に対する各変数の寄与の大きさおよび符号を可視化することと、これらの主成分に関して各観測値を表すことができます。関数 biplot
は、以下を行います。
符号規則を適用して、
coefs
の各列で大きさが最大である要素を正にします。この処理により、coefs
のベクトルの一部が逆方向に反転しますが、多くの場合はプロットが読みやすくなります。係数ベクトルの符号を変更しても意味は変わらないため、プロットの解釈は影響を受けません。プロットに収まるようにスコアをスケーリングします。つまり、各スコアをすべてのスコアの最大絶対値で除算してから、
coefs
の最大係数長を乗算します。次に、biplot
は係数の符号規則に従ってスコア座標の符号を変更します。
バージョン履歴
R2006a より前に導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)