MATLAB 中的散點圖
本教程將討論使用 MATLAB 中的 scatter()
函式建立散點圖。
使用 MATLAB 中的 scatter()
函式建立散點圖
scatter(x,y)
函式在輸入向量 x 和 y 指定的位置上建立散點圖。預設情況下,scatter()
函式使用圓形標記來繪製給定的資料。例如,讓我們使用 scatter()
函式來建立給定資料的散點圖。請參閱下面的程式碼。
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
scatter(x,y)
輸出:
儲存在變數 x 和 y 中的資料用於在輸出中建立散點圖。確保變數 x 和 y 的長度應該相同。否則,MATLAB 將顯示錯誤。預設情況下,scatter()
函式使用圓圈大小和顏色的預設值,但我們可以更改函式的預設屬性。例如,要更改圓圈的大小,我們必須將圓圈的大小定義為 scatter()
函式內的第三個引數。例如,讓我們更改上圖中圓圈的大小。請參閱下面的程式碼。
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
scatter(x,y,10)
輸出:
上面輸出中圓圈的大小與之前散點圖中圓圈的大小不同。大小應為正數值或與輸入向量 x 和 y 大小相同的向量。如果大小是單個正數值,就像上面的程式碼一樣,它將應用於散點圖中存在的所有圓圈。我們還可以使用與輸入向量 x 和 y 長度相同的向量為每個圓賦予不同的大小值。例如,讓我們改變上面散點圖中每個圓圈的大小。請參閱下面的程式碼。
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
scatter(x,y,CSize)
輸出:
在上面的輸出中,每個圓圈都有不同的大小。我們還可以通過在 scatter()
函式中將其作為第四個引數傳遞來更改散點圖中圓圈的顏色。例如,讓我們將上面散點圖中圓圈的顏色更改為黑色。請參閱下面的程式碼。
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
scatter(x,y,CSize,[0 0 0])
輸出:
在上面的散點圖中,圓圈的顏色是黑色,但我們可以通過在 scatter()
函式中輸入該顏色的 RGB 值作為第四個引數來賦予它任何顏色。我們還可以通過在 scatter()
函式中將顏色名稱作為字串傳遞來更改顏色。如果我們只定義一個顏色值,它將應用於散點圖中存在的所有圓圈。我們還可以通過使用與輸入向量 x 和 y 大小相同的矩陣為每個圓賦予不同的顏色。矩陣可以包含正數值或 RGB 三元組顏色。例如,讓我們改變上面散點圖中每個圓圈的顏色。請參閱下面的程式碼。
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
CColor = 100:-1:1;
scatter(x,y,CSize,CColor)
colorbar
輸出:
colorbar
命令在上面的程式碼中用於在散點圖中繪製顏色條。我們可以從顏色條中看出,低值屬於較冷的顏色,高值屬於較熱的顏色。在此示例中,我們使用了具有正數值的向量,但我們也可以使用具有 RGB 三元組值的矩陣。上面散點圖中的圓圈是空心的,但我們也可以使用 scatter()
函式內的 filled
屬性來填充它們。例如,讓我們填充上面散點圖中的圓圈。請參閱下面的程式碼。
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
CColor = 100:-1:1;
scatter(x,y,CSize,CColor,'filled')
colorbar
輸出:
在輸出中,填充了每種顏色。我們還可以更改散點圖中的標記符號。預設情況下,scatter()
函式使用圓圈作為標記,但我們可以通過傳遞一個包含標記符號的字串來更改它,例如 d
代表菱形,p
代表五角星,h
代表六角星,等等。例如,讓我們將上面散點圖中的標記符號從圓形更改為五角星形。請參閱下面的程式碼。
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
CColor = 100:-1:1;
scatter(x,y,CSize,CColor,'p')
輸出:
在輸出中,標記符號更改為五角星形。我們還可以使用 scatter()
函式中的 MarkerFaceAlpha
屬性更改標記的透明度。我們可以將透明度值從 0 更改為 1。例如,我們將上面散點圖的透明度更改為 0.5。請參閱下面的程式碼。
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
CColor = 100:-1:1;
scatter(x,y,CSize,CColor,'filled','MarkerFaceAlpha',0.5)
輸出:
在輸出中,標記具有相同的邊緣和麵顏色,但我們可以為標記賦予不同的邊緣和麵顏色。要更改標記的邊緣顏色,我們可以使用 scatter()
圖中的 MarkerEdgeColor
屬性。要更改標記的面部顏色,我們可以使用 MarkerFaceColor
屬性。顏色值可以是任何 RGB 三元組或包含顏色名稱的字串。我們還可以使用 LineWidth
屬性更改標記邊緣的線寬。例如,讓我們更改上面散點圖中標記的邊緣顏色、面顏色和線寬。請參閱下面的程式碼。
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
scatter(x,y,CSize,'MarkerFaceColor','yellow','MarkerEdgeColor','black','LineWidth',1.5)
輸出:
在輸出中,標記面顏色為黃色,邊緣顏色為黑色。如果我們想建立一個 3D 散點圖,我們可以使用 scatter3()
函式。此函式與 scatter()
函式相同,不同之處在於它在 3D 平面中繪製給定資料。我們可以為 scatter3()
函式提供兩個或三個輸入向量。在三個輸入的情況下,第一個向量包含 x 座標,第二個包含 y 座標,第三個包含 z 座標。在兩個輸入向量的情況下,第三個座標 z 將從前兩個座標的索引中獲取。例如,讓我們使用 scatter3()
函式在 3D 位置繪製上述散點圖。請參閱下面的程式碼。
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
z = 1:100;
scatter3(x,y,z)
輸出:
我們還可以像更改 scatter()
函式一樣更改 scatter3()
函式屬性。