Main Content

gscatter

グループ別の散布図

説明

gscatter(x,y,g) は、g によってグループ化された xy の散布図を作成します。入力 x および y は、同じサイズのベクトルです。

gscatter(x,y,g,clr,sym,siz) は、各グループのマーカーの色 clr、記号 sym、およびサイズ siz を指定します。

gscatter(x,y,g,clr,sym,siz,doleg) は、凡例をグラフに表示するかどうかを制御します。既定では、gscatter は凡例を作成します。

gscatter(x,y,g,clr,sym,siz,doleg,xnam,ynam) は、x 軸のラベルと y 軸のラベルに使用する名前を指定します。xnam および ynam が指定されず、入力 xy が名前をもつ変数の場合、gscatter は座標軸を変数名でラベル付けします。

gscatter(ax,___) は、axes オブジェクト ax によって指定されたプロットの座標軸を使用します。ax を最初の入力引数として指定し、その後に上記の構文での入力引数の組み合わせが続きます。

h = gscatter(___) は、g のグループに対応するグラフィックス ハンドルを返します。

clrsym および siz について [] を渡すと、既定値を使用できます。

すべて折りたたむ

carsmall データセットを読み込みます。

load carsmall

Displacement の値を x 軸に、Horsepower の値を y 軸にプロットします。gscatter は、座標軸の既定ラベルとして変数名を使用します。Model_Year によってデータ点をグループ化します。

gscatter(Displacement,Horsepower,Model_Year)

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent 70, 76, 82.

discrim データセットを読み込みます。

load discrim

データセットには、9 種類の要素 (気候、住宅、教育、健康など) に基づく都市の評価が含まれています。行列 ratings には評価の情報が含まれています。

気候 (1 列目) と住宅 (2 列目) の評価について、行列 group 内の都市の規模別にグループ化して関係性をプロットします。グループごとに異なる色とプロットのシンボルを選択します。

gscatter(ratings(:,1),ratings(:,2),group,'br','xo')
xlabel('climate')
ylabel('housing')

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent 1, 2.

hospital データセットを読み込みます。

load hospital

入院患者の年齢と体重をプロットします。性別および喫煙者の現状によって患者をグループ化します。o 記号を使用して非喫煙者を表し、* 記号を使用して喫煙者を表します。

x = hospital.Age;
y = hospital.Weight;
g = {hospital.Sex,hospital.Smoker};
gscatter(x,y,g,'rkgb','o*',8,'on','Age','Weight')
legend('Location','northeastoutside')

Figure contains an axes object. The axes object contains 4 objects of type line. These objects represent Female,0, Female,1, Male,0, Male,1.

carsmall データセットを読み込みます。2 つのサブプロットを使用して Figure を作成し、ax1 および ax2 として axes オブジェクトを返します。対応する Axes オブジェクトを参照し、各座標軸のセットで散布図を作成します。左のサブプロットでは、変数 Model_Year を使用してデータをグループ化します。右のサブプロットでは、変数 Cylinders を使用してデータをグループ化します。対応する Axes オブジェクトを関数 title に渡すことによって、各プロットにタイトルを追加します。

load carsmall
color = lines(6); % Generate color values

ax1 = subplot(1,2,1); % Left subplot
gscatter(ax1,Acceleration,MPG,Model_Year,color(1:3,:))
title(ax1,'Left Subplot (Model Year)')

ax2 = subplot(1,2,2); % Right subplot
gscatter(ax2,Acceleration,MPG,Cylinders,color(4:6,:))
title(ax2,'Right Subplot (Cylinders)')

Figure contains 2 axes objects. Axes object 1 with title Left Subplot (Model Year) contains 3 objects of type line. These objects represent 70, 76, 82. Axes object 2 with title Right Subplot (Cylinders) contains 3 objects of type line. These objects represent 4, 6, 8.

関数hsvによって決定されるカラーマップを使用してマーカーの色を指定します。

自動車の周囲にある物体の座標を含む 3 次元の点の集合として格納された LIDAR スキャン データ セットを読み込みます。

load('lidar_subset.mat') 
loc = lidar_subset;

自動車の周囲の環境を強調するため、道路表面の上部の領域で自動車の左右 20 メートルおよび前後 20 メートルにわたるように関心領域を設定します。

xBound = 20; % in meters
yBound = 20; % in meters
zLowerBound = 0; % in meters

指定した領域内の点のみが含まれるようにデータをトリミングします。

indices = loc(:,1) <= xBound & loc(:,1) >= -xBound ...
    & loc(:,2) <= yBound & loc(:,2) >= -yBound ...
    & loc(:,3) > zLowerBound;
loc = loc(indices,:);

ペアワイズ距離で dbscan を使用して、データをクラスター化します。

D = pdist2(loc,loc);
idx = dbscan(D,2,50,'Distance','precomputed');

関数 gscatter を使用して、結果のクラスターを 2 次元グループ散布図として可視化します。既定では、gscatter は MATLAB の既定の 7 色を使用します。一意のクラスターの数が 7 を超えると、この関数は必要に応じて既定の色を繰り返して使います。クラスター数を求め、関数 hsv を使用して対応する数の色を生成します。マーカーの色を指定して、クラスターごとに一意の色を使用します。

numGroups = length(unique(idx));
clr = hsv(numGroups);
gscatter(loc(:,1),loc(:,2),idx,clr)
xlabel('x')
ylabel('y')

Figure contains an axes object. The axes object contains 12 objects of type line. These objects represent -1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11.

carbig データセットを読み込みます。

load carbig

AccelerationMPG を比較する散布図を作成します。Origin に基づいてデータ点をグループ化します。

h = gscatter(Acceleration,MPG,Origin)
h = 
  7x1 Line array:

  Line    (USA)
  Line    (France)
  Line    (Japan)
  Line    (Germany)
  Line    (Sweden)
  Line    (Italy)
  Line    (England)

(Japan) というラベルのグループに対応する Line オブジェクトを表示します。

jgroup = h(3)
jgroup = 
  Line (Japan) with properties:

              Color: [0.9290 0.6940 0.1250]
          LineStyle: 'none'
          LineWidth: 0.5000
             Marker: '.'
         MarkerSize: 15
    MarkerFaceColor: 'none'
              XData: [15 14.5000 14.5000 14 19 18 15.5000 13.5000 17 ... ]
              YData: [24 27 27 25 31 35 24 19 28 23 27 20 22 18 20 31 32 ... ]

  Show all properties

Japan グループのマーカーの色を黒に変更します。

jgroup.Color = 'k';

Figure contains an axes object. The axes object contains 7 objects of type line. These objects represent USA, France, Japan, Germany, Sweden, Italy, England.

入力引数

すべて折りたたむ

x 軸の値。数値ベクトルを指定します。x のサイズは y と同じでなければなりません。

データ型: single | double

y 軸の値。数値ベクトルを指定します。y のサイズは x と同じでなければなりません。

データ型: single | double

グループ化変数。categorical ベクトル、logical ベクトル、数値ベクトル、文字配列、string 配列、または文字ベクトルの cell 配列を指定します。g は、いくつかのグループ化変数 ({g1 g2 g3} など) を含む cell 配列となることもあります。この場合、グループ化変数のすべてについて共通の値をもつ場合、観測は同じグループに属します。同じグループの点は、同じマーカーの色、記号およびサイズで散布図に表示されます。

g の行数と x の長さは等しくなければなりません。

例: species

例: {Cylinders,Origin}

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

マーカーの色。文字ベクトルまたは string スカラーによる色の省略名、または RGB 3 成分の行列を指定します。

カスタム色の場合は、RGB 3 成分の行列を指定します。RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 要素の行ベクトルです。強度は範囲 [0,1] に含まれていなければなりません。たとえば [0.4 0.6 0.7] のようになります。

あるいは、一部の一般的な色を名前で指定できます。次の表は、名前が付いた色のオプションおよび等価な RGB 3 成分の一覧です。

省略名RGB 3 成分外観
'r'[1 0 0]

Sample of the color red

'g'[0 1 0]

Sample of the color green

'b'[0 0 1]

Sample of the color blue

'c'[0 1 1]

Sample of the color cyan

'm'[1 0 1]

Sample of the color magenta

'y'[1 1 0]

Sample of the color yellow

'k'[0 0 0]

Sample of the color black

'w'[1 1 1]

Sample of the color white

以下は、MATLAB が多くのタイプのプロットで使用する既定の色に対する RGB 3 成分のカラー コードです。

RGB 3 成分外観
[0 0.4470 0.7410]

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

clr の既定値は、MATLAB の既定の色を含む RGB 3 成分の行列です。

g の一意のグループすべてに対して十分な色が指定されていない場合、gscatterclr で指定された値を繰り返して使います。一意のグループの数が既定の色の数 (7) を超える場合に既定値を使用すると、gscatter は必要に応じて既定値を繰り返して使います。

例: 'rgb'

例: [0 0 1; 0 0 0]

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

マーカーの記号。関数 plot が認識する記号の文字ベクトルまたは string スカラーを指定します。次の表は、使用できるマーカーの記号の一覧です。

説明
'o'
'+'プラス記号
'*'アスタリスク
'.'
'x'十字
's'正方形
'd'菱形
'^'上向き三角形
'v'下向き三角形
'>'右向き三角形
'<'左向き三角形
'p'星形五角形
'h'星形六角形
'none'マーカーなし

十分な値が指定されていないグループがある場合、必要に応じて gscatter は指定された値を繰り返します。

例: 'o+*v'

データ型: char | string

マーカーのサイズ。ポイント単位の正の数値ベクトルを指定します。既定値は、観測値の個数によって決定されます。十分な値が指定されていないグループがある場合、必要に応じて gscatter は指定された値を繰り返します。

例: [6 12]

データ型: single | double

凡例を含めるオプション。'on' または 'off' のいずれかを指定します。既定では、凡例がグラフに表示されます。

x 軸のラベル。文字ベクトルまたは string スカラーを指定します。

データ型: char | string

y 軸のラベル。文字ベクトルまたは string スカラーを指定します。

データ型: char | string

プロットの座標軸。Axes オブジェクトか UIAxes オブジェクトを指定します。ax を指定しない場合、gscatter は、現在の座標軸を使用してプロットを作成します。axes オブジェクトを作成する方法の詳細については、axesuiaxes を参照してください。

出力引数

すべて折りたたむ

グラフィックス ハンドル。Line オブジェクトの配列として返されます。各 Line オブジェクトは、g 内のいずれかのグループに対応します。ドット表記を使用して、line オブジェクトのプロパティのクエリと設定を行うことができます。Line オブジェクトのプロパティの一覧については、Line のプロパティ を参照してください。

バージョン履歴

R2006a より前に導入

すべて展開する

R2022a での動作変更