Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

scatter

  • Scatter plot

説明

scatter(x,y) は、ベクトル x および y で指定された位置に円マーカーを表示して散布図を作成します。このタイプのグラフは、バブル プロットとしても知られています。

  • 1 つの座標セットをプロットするには、x および y を等しい長さのベクトルとして指定します。

  • 同じ座標軸セットに複数の座標セットをプロットするには、x または y のうちの少なくとも 1 つを行列として指定します。

scatter(x,y,sz) は円のサイズを指定します。すべての円に同じサイズを使用するには、sz をスカラーとして指定します。円ごとにサイズを変えてプロットするには、sz をベクトルまたは行列として指定します。

scatter(x,y,sz,c) は円の色を指定します。すべての円に 1 つの色を指定することも、色を変えることもできます。たとえば、c'red' として指定すると、すべての円を赤でプロットできます。

scatter(___,'filled') は円を塗りつぶします。'filled' オプションは、前述の構文のいずれかの入力引数と組み合わせて使用します。

scatter(___,mkr) はマーカーのタイプを指定します。

scatter(___,Name,Value) は、1 つ以上の名前と値のペアの引数を使用して、散布図を変更します。たとえば 'LineWidth',2 はマーカーの輪郭の幅を 2 ポイントに設定します。

scatter(ax,___) は、現在の座標軸ではなく ax で指定された座標軸にプロットします。オプションの ax は、前述の構文のすべての入力引数の組み合わせより前に指定できます。

s = scatter(___)Scatter オブジェクトまたは Scatter オブジェクトの配列を返します。散布図を作成後に変更するには、s を使用します。

すべて折りたたむ

x を 0 ~ 3π の範囲にある等間隔の 200 個の値として作成します。y をランダム ノイズが含まれる余弦値として作成します。その後、散布図を作成します。

x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);  
scatter(x,y)

Figure contains an axes. The axes contains an object of type scatter.

さまざまなサイズの円を使用して散布図を作成します。サイズを平方ポイントで指定します。

x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);
sz = linspace(1,100,200);
scatter(x,y,sz)

Figure contains an axes. The axes contains an object of type scatter.

xy および sz の対応する要素によって、各円の位置とサイズが決まります。すべての円を同じサイズでプロットするには、sz を数値スカラーとして指定します。

散布図を作成し、円の色を変更します。

x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);
c = linspace(1,10,length(x));
scatter(x,y,[],c)

Figure contains an axes. The axes contains an object of type scatter.

xy および c の対応する要素によって、各円の位置と色が決まります。関数 scatter は、c の要素を現在のカラーマップの色にマッピングします。

散布図を作成し、マーカーを塗りつぶします。scatter ではマーカー エッジの色で各マーカーを塗りつぶします。

x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);
sz = 25;
c = linspace(1,10,length(x));
scatter(x,y,sz,c,'filled')

Figure contains an axes. The axes contains an object of type scatter.

x ベクトルと y ベクトルを、ランダム ノイズが含まれる正弦値と余弦値として作成します。その後、140 平方ポイントの菱形のマーカーを使用して散布図を作成します。

theta = linspace(0,2*pi,150);
x = sin(theta) + 0.75*rand(1,150);
y = cos(theta) + 0.75*rand(1,150);  
sz = 140;
scatter(x,y,sz,'d')

Figure contains an axes. The axes contains an object of type scatter.

x ベクトルと y ベクトルを、ランダム ノイズが含まれる正弦値と余弦値として作成します。散布図を作成してマーカー エッジの色、マーカー面の色およびライン幅を設定します。

theta = linspace(0,2*pi,300);
x = sin(theta) + 0.75*rand(1,300);
y = cos(theta) + 0.75*rand(1,300);  
sz = 40;
scatter(x,y,sz,'MarkerEdgeColor',[0 .5 .5],...
              'MarkerFaceColor',[0 .7 .7],...
              'LineWidth',1.5)

Figure contains an axes. The axes contains an object of type scatter.

AlphaData プロパティをさまざまな不透明度値のベクトルに設定することで、散布点の透明度を変更できます。散布図が AlphaData 値を必ず使用するようにするには、MarkerFaceAlpha プロパティを 'flat' に設定します。

正規分布する一連の乱数を作成します。次に、塗りつぶされたマーカーを含むデータの散布図を作成します。

x = randn(1000,1);
y = randn(1000,1);
s = scatter(x,y,'filled');

Figure contains an axes. The axes contains an object of type scatter.

ゼロからの距離に応じて各点の不透明度を設定します。

distfromzero = sqrt(x.^2 + y.^2);
s.AlphaData = distfromzero;
s.MarkerFaceAlpha = 'flat';

Figure contains an axes. The axes contains an object of type scatter.

R2019b 以降、関数 tiledlayout および nexttile を使用して、プロットをタイル表示できます。関数 tiledlayout を呼び出して、2 行 1 列のタイル表示チャート レイアウトを作成します。関数 nexttile を呼び出して、axes オブジェクト ax1 および ax2 を作成します。散布データを各座標軸にプロットします。下の散布図では、塗りつぶした菱形のマーカーを指定します。

x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);
tiledlayout(2,1)

% Top plot
ax1 = nexttile;
scatter(ax1,x,y)

% Bottom plot
ax2 = nexttile;
scatter(ax2,x,y,'filled','d')

Figure contains 2 axes. Axes 1 contains an object of type scatter. Axes 2 contains an object of type scatter.

散布図を作成し、scatter series オブジェクト s を返します。

theta = linspace(0,1,500);
x = exp(theta).*sin(100*theta);
y = exp(theta).*cos(100*theta);
s = scatter(x,y);

Figure contains an axes. The axes contains an object of type scatter.

s を使用して、作成した scatter series のプロパティをクエリおよび設定します。ライン幅を 0.6 ポイントに設定します。マーカー エッジの色を青に設定します。マーカー面の色を RGB 3 成分を使用して設定します。

s.LineWidth = 0.6;
s.MarkerEdgeColor = 'b';
s.MarkerFaceColor = [0 0.5 0.5];

Figure contains an axes. The axes contains an object of type scatter.

入力引数

すべて折りたたむ

x 座標。スカラー、ベクトルまたは行列として指定します。x のサイズと形状はデータの形状に依存します。次の表では、最も一般的な状況について説明します。

プロットのタイプ座標の指定方法
1 つの点

x および y をスカラーとして指定します。たとえば、次のようになります。

scatter(1,2)

1 つの点集合

x および y を同じ長さの行ベクトルまたは列ベクトルの任意の組み合わせとして指定します。たとえば、次のようになります。

scatter([1 2 3],[4; 5; 6])

色が異なる複数の点集合

すべてのセットが同じ x 座標または y 座標を共有している場合は、共有している座標をベクトルとして、その他の座標を行列として指定します。ベクトルの長さは行列の次元の 1 つと一致していなければなりません。たとえば、次のようになります。

scatter([1 2 3],[4 5 6; 7 8 9])
行列が正方の場合、scatter は行列の列ごとに別個の点のセットをプロットします。

または、xy をサイズが等しい行列として指定します。この場合、scattery の各列を、対応する x の列に対してプロットします。たとえば、次のようになります。

scatter([1 3 5; 2 4 6],[10 25 45; 20 40 60])

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration

y 座標。スカラー、ベクトルまたは行列として指定します。y のサイズと形状はデータの形状に依存します。次の表では、最も一般的な状況について説明します。

プロットのタイプ座標の指定方法
1 つの点

x および y をスカラーとして指定します。たとえば、次のようになります。

scatter(1,2)

1 つの点集合

x および y を同じ長さの行ベクトルまたは列ベクトルの任意の組み合わせとして指定します。たとえば、次のようになります。

scatter([1 2 3],[4; 5; 6])

色が異なる複数の点集合

すべてのセットが同じ x 座標または y 座標を共有している場合は、共有している座標をベクトルとして、その他の座標を行列として指定します。ベクトルの長さは行列の次元の 1 つと一致していなければなりません。たとえば、次のようになります。

scatter([1 2 3],[4 5 6; 7 8 9])
行列が正方の場合、scatter は行列の列ごとに別個の点のセットをプロットします。

または、xy をサイズが等しい行列として指定します。この場合、scattery の各列を、対応する x の列に対してプロットします。たとえば、次のようになります。

scatter([1 3 5; 2 4 6],[10 25 45; 20 40 60])

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration

マーカー サイズ。数値スカラー、ベクトル、行列、または空の配列 ([]) として指定します。サイズは各マーカーの平方ポイント単位の面積を制御します。空の行列は、既定の 36 ポイントのサイズを指定します。サイズを指定する方法は、xy の指定方法や目的のプロットの外観によって異なります。次の表では、最も一般的な状況について説明します。

目的のマーカー サイズxy sz

すべての点に同じサイズ

xy の説明にあるベクトルまたは行列の任意の有効な組み合わせ。

スカラー

x をベクトル、y を行列、sz をスカラーとして指定します。

x = [1 2 3 4];
y = [1 6; 3 8; 2 7; 4 9];
scatter(x,y,100)

点ごとに異なるサイズ

同じ長さのベクトル

  • x および y と同じ長さのベクトル。

  • 少なくとも 1 つの次元が x および y の長さと一致する行列。行列を指定すると、それぞれの (x,y) の位置にサイズが異なる複数のマーカーを表示する場合に便利です。

xy、および sz をベクトルとして指定します。

x = [1 2 3 4];
y = [1 3 2 4];
sz = [80 150 700 50];
scatter(x,y,sz)

xy をベクトル、sz を行列として指定します。

x = [1 2 3 4];
y = [1 3 2 4];
sz = [80 30; 150 900; 50 2000; 200 350];
scatter(x,y,sz)

点ごとに異なるサイズ

複数のデータセットをプロットする場合は x または y の少なくとも一方が行列

  • 各データセットの点と同じ数の要素をもつベクトル。

  • x または y の行列と同じサイズの行列。

x をベクトル、y を行列、sz をベクトルとして指定します。

x = [1 2 3 4];
y = [1 6; 3 8; 2 7; 4 9];
sz = [80 150 50 700];
scatter(x,y,sz)

x をベクトル、y を行列、szy と同じサイズの行列として指定します。

x = [1 2 3 4];
y = [1 6; 3 8; 2 7; 4 9];
sz = [80 30; 150 900; 50 2000; 200 350];
scatter(x,y,sz)

マーカーの色。色名、RGB 3 成分、RGB 3 成分の行列、またはカラーマップ インデックスのベクトルとして指定します。

  • 色名 — 'red' のような色名、または 'r' のような省略名。

  • RGB 3 成分 — 色の赤、緑、青成分の強度を指定する 3 要素の行ベクトル。強度値は [0,1] の範囲でなければなりません。たとえば [0.4 0.6 0.7] のようになります。RGB 3 成分は、カスタム色を作成するのに役立ちます。

  • RGB 3 成分の行列 — 各行が RGB 3 成分である 3 列の行列。

  • カラーマップ インデックスのベクトル — x および y のベクトルと同じ長さの数値のベクトル。

色を指定する方法は、目的の配色や 1 つの座標セットをプロットするか複数の座標セットをプロットするかによって異なります。次の表では、最も一般的な状況について説明します。

配色色の指定方法

すべての点に 1 つの色を使用する。

次の表のいずれかの色名または省略名を指定するか、1 つの RGB 3 成分を指定します。

1 つの点集合をプロットし、色を 'red' に指定します。

scatter(1:4,[2 5 3 7],[],'red')

2 つの点集合をプロットし、RGB 3 成分を使用して色を赤に指定します。

scatter(1:4,[2 5; 1 2; 8 4; 11 9],[],[1 0 0])

カラーマップを使用して各点に異なる色を割り当てる。

数値の行ベクトルまたは列ベクトルを指定します。数値は現在のカラーマップ配列にインデックスを付けます。最小値はカラーマップの最初の行にマッピングされ、最大値は最後の行にマッピングされます。中間の値は中間の行に線形にマッピングされます。

プロットに点が 3 つある場合、値が必ずカラーマップ インデックスとして解釈されるように列ベクトルを指定します。

この方法は、xy、および sz がいずれもベクトルである場合にのみ使用できます。

4 つのカラーマップ インデックスを指定するベクトル c を作成します。現在のカラーマップの色を使用して 4 つの点をプロットします。その後、カラーマップを winter に変更します。

c = 1:4;
scatter(1:4,[2 5 3 7],[],c)
colormap(gca,'winter')

点ごとにカスタム色を作成する。

m 行 3 列の RGB 3 成分の行列を指定します (m はプロットの点の数)。

この方法は、xy、および sz がいずれもベクトルである場合にのみ使用できます。

緑、赤、グレー、および紫の RGB 3 成分を指定する行列 c を作成します。その後、それらの色を使用して 4 つの点の散布図を作成します。

c = [0 1 0; 1 0 0; 0.5 0.5 0.5; 0.6 0 1];
scatter(1:4,[2 5 3 7],[],c)

データセットごとに異なる色を作成する。

n 行 3 列の RGB 3 成分の行列を指定します (n はデータセットの数)。

この方法は、xy、または sz の少なくとも 1 つが行列である場合にのみ使用できます。

2 つの RGB 3 成分を含む行列 c を作成します。その後、それらの色を使用して 2 つのデータセットをプロットします。

c = [1 0 0; 0.6 0 1];
s = scatter(1:4,[2 5; 1 2; 8 4; 11 9],[],c)

一般的な色の色名と RGB 3 成分

色名省略名RGB 3 成分16 進数カラー コード外観
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

MATLAB® の多くのタイプのプロットで使用されている既定の色の RGB 3 成分および 16 進数カラー コードを次に示します。

RGB 3 成分16 進数カラー コード外観
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

マーカー タイプ。次の表に挙げる値のいずれかとして指定します。

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

マーカーの内部を塗りつぶすオプション。'filled' として指定します。このオプションは、たとえば 'o''square' などの面があるマーカーに使用します。エッジのみを含む面のないマーカー ('+''*''.' および 'x') は描画されません。

'filled' オプションは Scatter オブジェクトの MarkerFaceColor プロパティを 'flat' に、MarkerEdgeColor プロパティを 'none' に設定します。これにより、マーカーのエッジを描画せず、面を描画します。

ターゲット座標軸。Axes オブジェクト、PolarAxes オブジェクト、または GeographicAxes オブジェクトとして指定します。座標軸を指定せず、現在の座標軸が直交座標軸の場合、関数 scatter は現在の座標軸を使用します。極座標軸にプロットするには、最初の入力引数として PolarAxes オブジェクトを指定するか、関数 polarscatter を使用します。地理座標軸にプロットするには、最初の入力引数として GeographicAxes オブジェクトを指定するか、関数 geoscatter を使用します。

名前と値のペアの引数

オプションの Name,Value の引数ペアをコンマ区切りで指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

例: 'MarkerFaceColor','red' は、マーカーの面の色を赤に設定します。

ここでは、Scatter オブジェクトのプロパティの一部だけを紹介しています。完全な一覧については、Scatter のプロパティ を参照してください。

マーカーの輪郭の色。'flat'、RGB 3 成分、16 進数カラー コード、色名、または省略名として指定します。既定値の 'flat' を指定すると、CData プロパティからの色が使用されます。

カスタム色を使用する場合は、RGB 3 成分または 16 進数カラー コードを指定します。

  • RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は [0,1] の範囲でなければなりません。たとえば [0.4 0.6 0.7] のようになります。

  • 16 進数カラー コードは、ハッシュ記号 (#) で始まり、3 桁または 6 桁の 0 から F までの範囲の 16 進数が続く文字ベクトルまたは string スカラーです。これらの値では大文字小文字は区別されません。したがって、カラー コード '#FF8800''#ff8800''#F80'、および '#f80' は等価です。

あるいは、名前を使用して一部の一般的な色を指定できます。次の表に、名前の付いた色オプション、等価の RGB 3 成分、および 16 進数カラー コードを示します。

色名省略名RGB 3 成分16 進数カラー コード外観
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'該当なし該当なし該当なし色なし

MATLAB の多くのタイプのプロットで使用されている既定の色の RGB 3 成分および 16 進数カラー コードを次に示します。

RGB 3 成分16 進数カラー コード外観
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

例: [0.5 0.5 0.5]

例: 'blue'

例: '#D2F9A7'

マーカーの塗りつぶし色。'flat''auto'、RGB 3 成分、16 進数カラー コード、色名、または省略名として指定します。'flat' オプションは CData 値を使用します。'auto' オプションは座標軸の Color プロパティと同じ色を使用します。

カスタム色を使用する場合は、RGB 3 成分または 16 進数カラー コードを指定します。

  • RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は [0,1] の範囲でなければなりません。たとえば [0.4 0.6 0.7] のようになります。

  • 16 進数カラー コードは、ハッシュ記号 (#) で始まり、3 桁または 6 桁の 0 から F までの範囲の 16 進数が続く文字ベクトルまたは string スカラーです。これらの値では大文字小文字は区別されません。したがって、カラー コード '#FF8800''#ff8800''#F80'、および '#f80' は等価です。

あるいは、名前を使用して一部の一般的な色を指定できます。次の表に、名前の付いた色オプション、等価の RGB 3 成分、および 16 進数カラー コードを示します。

色名省略名RGB 3 成分16 進数カラー コード外観
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'該当なし該当なし該当なし色なし

MATLAB の多くのタイプのプロットで使用されている既定の色の RGB 3 成分および 16 進数カラー コードを次に示します。

RGB 3 成分16 進数カラー コード外観
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

例: [0.3 0.2 0.1]

例: 'green'

例: '#D2F9A7'

マーカー エッジの幅。ポイント単位の正の値として指定します。

例: 0.75

出力引数

すべて折りたたむ

Scatter オブジェクトまたは Scatter オブジェクトの配列。散布図のプロパティを作成後に変更するには、s を使用します。

拡張機能

R2006a より前に導入