MATLAB - 散點圖



散點圖是一種資料視覺化型別,它將單個數據點顯示為點。它們有助於顯示兩個連續變數之間的關係,例如身高和體重,或突出資料中的叢集或模式。

圖上的每個點代表一個數據點,它在 x 軸上的位置對應於一個變數,它在 y 軸上的位置對應於另一個變數。散點圖對於識別資料中的趨勢、模式和異常值特別有用。在 MATLAB 中,您可以使用 scatter 函式建立散點圖。

語法

scatter(x,y)
scatter(x,y,sz)
scatter(x,y,sz,c)
scatter(___,"filled")
scatter(___,mkr)
scatter(tbl,xvar,yvar)
scatter(tbl,xvar,yvar,"filled")

語法的詳細解釋如下:

scatter(x,y) - scatter(x, y) 函式生成一個散點圖,其中圓形標記根據向量 x 和 y 中的值進行定位。對於一組座標,請確保 x 和 y 是長度相同的向量。要在單個座標系上繪製多組座標,請將 x 或 y 作為矩陣輸入。

scatter(x,y,sz) - 函式定義散點圖中圓圈的大小。要使所有圓圈大小相同,請將 sz 設定為單個值。對於不同的圓圈大小,請對 sz 使用向量或矩陣。

scatter(x,y,sz,c) - 設定散點圖中圓圈的顏色。您可以為所有圓圈選擇一種顏色或具有不同的顏色。例如,要將所有圓圈繪製為紅色,請將 c 設定為“red”。

scatter(___,"filled") - 此處,scatter 函式的“filled”選項填充圓圈。此選項可與我們在上述語法中描述的任何輸入引數組合一起使用。

scatter(___,mkr) - 語法允許您指定散點圖的標記型別。

scatter(tbl,xvar,yvar) - 函式繪製表格 tbl 中的變數 xvar 和 yvar。要繪製單個數據集,請選擇一個變數作為 xvar,另一個變數作為 yvar。對於多個數據集,為 xvar、yvar 或兩者都選擇多個變數。如果兩個引數都包含多個變數,則它們必須具有相同的長度。

scatter(tbl,xvar,yvar,"filled") - 將繪製表格中指定的變數,並使用填充圓圈。

散點圖繪製示例

讓我們看看根據上面討論的語法繪製散點圖的示例。

示例 1:使用 scatter(x,y)

上述語法的程式碼如下:

x = rand(1, 100);
y = rand(1, 100);
scatter(x, y);

在此示例中,x 和 y 是隨機值的向量,每個向量包含 100 個元素。scatter(x, y) 函式使用這些值建立一個散點圖,其中每個點都由一個圓形標記表示。

當您在 matlab 命令視窗中執行相同操作時,輸出為:

using scatter

示例 2:使用 scatter(x,y,sz)

我們對上述語法的程式碼如下:

x = rand(1, 100);
y = rand(1, 100);
sz = 50 * rand(1, 100);
scatter(x, y, sz);

在此示例中,sz 是一個包含 100 個隨機值的向量,這些值表示散點圖中圓圈的大小。透過將 sz 指定為 scatter 函式的第三個引數,每個圓圈都將以對應於 sz 向量中對應索引處的值的大小繪製。這使您可以建立一個散點圖,其中每個圓圈的大小由一組單獨的值確定。

當您在 matlab 命令視窗中執行相同操作時,輸出為:

scatter x y sz

示例 3:使用 scatter(x,y,sz,c)

上述語法的程式碼如下:

x = rand(1, 100);
y = rand(1, 100);
sz = 50 * rand(1, 100);
c = rand(1, 100);
scatter(x, y, sz, c);

在此示例中,c 是一個包含 100 個隨機值的向量,這些值表示散點圖中圓圈的顏色。透過將 c 指定為 scatter 函式的第四個引數,每個圓圈都將以對應於 c 向量中對應索引處的值的顏色繪製。

scatter(x,y,sz,c)

示例 4:使用 scatter(___,"filled")

上述語法的程式碼為:

x = rand(1, 100);
y = rand(1, 100);
scatter(x, y, 'filled');

在此示例中,“filled”選項與 scatter 函式一起使用以填充散點圖中的圓圈。此選項可與之前描述的任何輸入引數組合一起使用,允許您自定義圖形的外觀,同時填充圓圈。

當您在 matlab 命令視窗中執行程式碼時,輸出為:

scatter filled

示例 5:使用 scatter(___,mkr)

上述語法的程式碼為:

x = rand(1, 100); 
y = rand(1, 100);
scatter(x, y, 'd');

在此示例中,“d”引數用作 scatter 函式的標記型別,它指定應為散點圖中的每個資料點使用菱形標記。您可以將“d”替換為其他標記型別,例如“o”表示圓形、“s”表示正方形、“+”表示加號等,以自定義圖形中標記的外觀。

當您在 matlab 命令視窗中執行程式碼時,輸出為:

scatter mkr

示例 6:使用 scatter(tbl,xvar,yvar)

上述語法的程式碼為:

data = rand(10, 2);
tbl = array2table(data, 'VariableNames', {'x', 'y'});
scatter(tbl, 'x', 'y');

在此示例中,tbl 是一個包含兩個變數 x 和 y 的表格。行 tbl = array2table(data, 'VariableNames', {'x', 'y'}); 將資料陣列轉換為一個名為“x”和“y”的兩個變數的表格 tbl。scatter(tbl, 'x', 'y') 函式用於建立這些變數的散點圖。

當您在 matlab 命令視窗中執行程式碼時,輸出為:

scatter tbl

示例 7:使用 scatter(tbl,xvar,yvar,"filled")

上述語法的程式碼為:

data = rand(10, 2);
tbl = array2table(data, 'VariableNames', {'x', 'y'});
scatter(tbl, 'x', 'y', 'filled');

在此示例中,tbl 是一個包含兩個變數 x 和 y 的表格。scatter(tbl, 'x', 'y', 'filled') 函式用於建立這些變數的散點圖,並使用填充圓圈。“filled”引數指定散點圖中的標記應填充。

當您在 matlab 命令視窗中執行相同操作時,輸出為:

scatter tbl filled

按組繪製散點圖

按組繪製散點圖是指根據分類變數對資料點進行分組或著色的散點圖。這種型別的圖形有助於視覺化兩個連續變數之間的關係,同時還顯示資料如何劃分為不同的組。每組在散點圖中都由不同的顏色或標記樣式表示,從而更容易比較組並識別任何模式或趨勢。

在 MATLAB 中,可以使用 gscatter() 函式建立按組繪製的散點圖。此函式允許您在散點圖中繪製多個數據點組,每組都由不同的顏色或標記樣式表示。

語法

gscatter(x,y,g)
gscatter(x,y,g,clr,sym,siz)
gscatter(x,y,g,clr,sym,siz,doleg)
gscatter(x,y,g,clr,sym,siz,doleg,xnam,ynam)

語法的詳細解釋如下:

gscatter(x,y,g) - 函式生成一個散點圖,其中由 x 和 y 表示的資料點根據 g 中的值進行分組。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 軸 (xnam) 和 y 軸 (ynam) 指定標籤。如果您不提供 xnam 和 ynam,並且 x 和 y 輸入是具有名稱的變數,則 gscatter 將使用這些變數名稱作為軸標籤。

讓我們看看上面討論的每種語法的示例。

示例 1:使用 gscatter(x,y,g)

上述語法的程式碼如下:

x = randn(100, 1);
y = randn(100, 1);
g = randi([1, 3], 100, 1);

gscatter(x, y, g);

在此示例中,gscatter 用於建立 x 與 y 的散點圖,其中資料點根據 g 中的值進行分組。每個組由不同的顏色表示,並在圖中新增圖例以指示哪種顏色對應於哪個組。

當您在 matlab 命令視窗中執行相同操作時,輸出為:

gscatter

示例 2:使用 gscatter(x,y,g,clr,sym,siz)

上述語法的程式碼為:

x = randn(100, 1);
y = randn(100, 1);
g = randi([1, 3], 100, 1);
clr = ['r', 'g', 'b'];
sym = ['o', 's', 'd'];
siz = [20, 30, 40];
gscatter(x, y, g, clr, sym, siz);

在此示例中,gscatter 用於建立 x 與 y 的散點圖,其中資料點根據 g 中的值進行分組。clr、sym 和 siz 向量為每個組定義自定義標記屬性(顏色、符號和大小)。散點圖將使用指定的顏色、標記符號和標記大小顯示每個組。

執行程式碼後,輸出為 −

gscatter clr

示例 3:使用 gscatter(x,y,g,clr,sym,siz,doleg)

上述語法的程式碼為:

x = randn(100, 1);
y = randn(100, 1);
g = randi([1, 3], 100, 1);
clr = ['r', 'g', 'b'];
sym = ['o', 's', 'd'];
siz = [20, 30, 40];
gscatter(x, y, g, clr, sym, siz, 'off');

在此示例中,gscatter 用於建立 x 與 y 的散點圖,其中資料點根據 g 中的值進行分組。clr、sym 和 siz 向量為每個組定義自定義標記屬性(顏色、符號和大小)。doleg 的“off”引數指定圖中不應顯示圖例。

當您在 matlab 命令視窗中執行相同操作時,輸出為:

gscatter sym

示例 4:使用 gscatter(x,y,g,clr,sym,siz,doleg,xnam,ynam)

上述語法的程式碼為:

x = randn(100, 1);
y = randn(100, 1);
g = randi([1, 3], 100, 1);
clr = ['r', 'g', 'b'];
sym = ['o', 's', 'd'];
siz = [20, 30, 40];
xnam = 'X-axis Label';
ynam = 'Y-axis Label';
gscatter(x, y, g, clr, sym, siz, 'on', xnam, ynam);

在此示例中,gscatter 用於建立 x 與 y 的散點圖,其中資料點根據 g 中的值進行分組。clr、sym 和 siz 向量為每個組定義自定義標記屬性(顏色、符號和大小)。doleg 的“on”引數指定圖中應顯示圖例。xnam 和 ynam 引數分別指定 x 軸和 y 軸的自定義標籤。如果您不提供 xnam 和 ynam,並且 x 和 y 輸入是具有名稱的變數,則 gscatter 將使用這些變數名稱作為軸標籤。

當您在 matlab 命令視窗中執行程式碼時,輸出為:

xnam ynam
廣告