MATLAB中scatter繪制散點圖


轉自https://ww2.mathworks.cn/help/matlab/ref/scatter.html#btrli6p-1

scatter

散點圖

語法

scatter(x,y)
scatter(x,y,sz)
scatter(x,y,sz,c)
scatter(___,'filled')
scatter(___,mkr)
scatter(___,Name,Value)
scatter(ax,___)
s = scatter(___)

說明

scatter(x,y) 在向量 x 和 y 指定的位置創建一個包含圓形的散點圖。該類型的圖形也稱為氣泡圖。

scatter(x,y,sz) 指定圓大小。要繪制大小相等的圓圈,請將 sz 指定為標量。要繪制大小不等的圓,請將 sz 指定為長度等於 x 和 y 的長度的向量。

scatter(x,y,sz,c) 指定圓顏色。要以相同的顏色繪制所有圓圈,請將 c 指定為顏色名稱或 RGB 三元數。要使用不同的顏色,請將 c 指定為向量或由 RGB 三元數組成的三列矩陣。

scatter(___,'filled') 填充圓形。可以將 'filled' 選項與前面語法中的任何輸入參數組合一起使用。

scatter(___,mkr) 指定標記類型。

scatter(___,Name,Value) 使用一個或多個名稱-值對組參數修改散點圖。例如,'LineWidth',2 將標記輪廓寬度設置為 2 磅。

scatter(ax,___) 將在 ax 指定的坐標區中,而不是在當前坐標區中繪制圖形。選項 ax 可以位於前面的語法中的任何輸入參數組合之前。

s = scatter(___) 返回 Scatter 對象。在創建散點圖后,以后可使用 s 對其進行修改。

輸入參數

x - x 值
向量

x 值,指定為向量。x 和 y 必須是長度相等的向量。

數據類型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration

y - y 值
向量

y 值,指定為向量。x 和 y 必須是長度相等的向量。

數據類型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration

sz - 標記面積
36 (默認) | 數值標量 | 行或列向量 | []

以平方磅為單位的標記面積,指定為下列形式之一:

  • 數值標量 - 以相同的大小繪制所有標記。

  • 行或列向量 - 使每個標記具有不同的大小。xy 和 sz 中的相應元素確定每個標記的位置和面積。sz 的長度必須等於 x 和 y 的長度。

  • [] - 使用 36 平方磅的默認面積。

標記面積的單位為平方磅。

示例: 50

示例: [36 25 25 17 46]

c - 標記顏色
[0 0 1] (默認) | RGB 三元數 | 由 RGB 三元數組成的三列矩陣 | 向量 | 'r' | 'g' | 'b' | ...

標記顏色,指定為下列形式之一:

  • RGB 三元數或顏色名稱 - 使用相同的顏色繪制所有標記。

  • 由 RGB 三元數組成的三列矩陣 - 對每個標記使用不同的顏色。矩陣的每行為對應標記指定一種 RGB 三元數顏色。行數必須等於 x 和 y 的長度。

  • 向量 - 對每個標記使用不同的顏色,並以線性方式將 c 中的值映射到當前顏色圖中的顏色。c 的長度必須等於 x 和 y 的長度。要更改坐標區的顏色圖,請使用 colormap 函數。

    如果散點圖中有三個點,並且您希望這些顏色成為顏色圖的索引,請以三元素列向量的形式指定 c

 

RGB 三元數是包含三個元素的行向量,其元素分別指定顏色中紅、綠、藍分量的強度。強度值必須位於 [0,1] 范圍內,例如 [0.4 0.6 0.7]。此外,還可以按名稱指定一些常見的顏色。下表列出長和短顏色名稱選項以及對應的 RGB 三元數值。

選項 說明 對應的 RGB 三元數
'red' 或 'r' 紅色 [1 0 0]
'green' 或 'g' 綠色 [0 1 0]
'blue' 或 'b' 藍色 [0 0 1]
'yellow' 或 'y' 黃色 [1 1 0]
'magenta' 或 'm' 品紅色 [1 0 1]
'cyan' 或 'c' 青藍色 [0 1 1]
'white' 或 'w' 白色 [1 1 1]
'black' 或 'k' 黑色 [0 0 0]

 

示例: 'k'

示例: [1 2 3 4]

mkr - 標記類型
'o' (默認) | '+' | '*' | '.' | 'x' | ...

標記類型,指定為下表中列出的值之一。

說明
'o' 圓圈
'+' 加號
'*' 星號
'.'
'x' 叉號
'square' 或 's' 方形
'diamond' 或 'd' 菱形
'^' 上三角
'v' 下三角
'>' 右三角
'<' 左三角
'pentagram' 或 'p' 五角星(五角形)
'hexagram' 或 'h' 六角星(六角形)
'none' 無標記

 

'filled' - 用於填充標記內部的選項
'filled'

用於填充標記內部的選項,指定為 'filled'。此選項和具有一個面的標記(例如,'o' 或 'square')一起使用。沒有面而只有邊的標記無法填充,如 '+''*''.' 和 'x'

'filled' 選項將 Scatter 對象的 MarkerFaceColor 屬性設置為 'flat',並將 MarkerEdgeColor 屬性設置為 'none',這樣便可只填充標記的面,而不繪制邊。

ax - 目標坐標區
Axes 對象 | PolarAxes 對象

目標坐標區,指定為 Axes 對象或 PolarAxes 對象。如果不指定坐標區或當前坐標區是笛卡爾坐標區,scatter 函數將使用當前坐標區。要在極坐標區上繪圖,請指定 PolarAxes 對象作為第一個輸入參數,或者使用 polarscatter 函數。

名稱-值對組參數

示例: 'MarkerFaceColor','red' 將標記面顏色設置為紅色。

此處列出的 Scatter 對象屬性只是其中的一部分。有關完整列表,請參閱 Scatter 屬性

全部折疊

'MarkerEdgeColor' - 標記輪廓顏色
'flat' (默認) | 'none' | RGB 三元數 | 'r' | 'g' | 'b' | ...

標記輪廓顏色,指定為 'flat'、RGB 三元數或表中列出的顏色選項之一。默認值 'flat' 將使用 CData 屬性中的顏色。

如果想自定義顏色,請指定一個 RGB 三元數。RGB 三元數是包含三個元素的行向量,其元素分別指定顏色中紅、綠、藍分量的強度。

強度值必須位於 [0,1] 范圍內,例如 [0.4 0.6 0.7]。此外,還可以按名稱指定一些常見的顏色。下表列出長和短顏色名稱選項以及對應的 RGB 三元數值。

選項 說明 對應的 RGB 三元數
'red' 或 'r' 紅色 [1 0 0]
'green' 或 'g' 綠色 [0 1 0]
'blue' 或 'b' 藍色 [0 0 1]
'yellow' 或 'y' 黃色 [1 1 0]
'magenta' 或 'm' 品紅色 [1 0 1]
'cyan' 或 'c' 青藍色 [0 1 1]
'white' 或 'w' 白色 [1 1 1]
'black' 或 'k' 黑色 [0 0 0]
'none' 無顏色 不適用

示例: [0.5 0.5 0.5]

示例: 'blue'

'MarkerFaceColor' - 標記填充顏色
'none' (默認) | 'flat' | 'auto' | RGB 三元數 | 'r' | 'g' | 'b' | ...

標記填充顏色,指定為 'flat''auto'、RGB 三元數或表中列出的顏色選項之一。

  • 'flat' - 使用 CData 值設置顏色。

  • 'auto' - 使用與坐標區的 Color 屬性相同的顏色。

 

如果想自定義顏色,請指定一個 RGB 三元數。RGB 三元數是包含三個元素的行向量,其元素分別指定顏色中紅、綠、藍分量的強度。強度值必須位於 [0,1] 范圍內,例如 [0.4 0.6 0.7]。此外,還可以按名稱指定一些常見的顏色。下表列出長和短顏色名稱選項以及對應的 RGB 三元數值。

選項 說明 對應的 RGB 三元數
'red' 或 'r' 紅色 [1 0 0]
'green' 或 'g' 綠色 [0 1 0]
'blue' 或 'b' 藍色 [0 0 1]
'yellow' 或 'y' 黃色 [1 1 0]
'magenta' 或 'm' 品紅色 [1 0 1]
'cyan' 或 'c' 青藍色 [0 1 1]
'white' 或 'w' 白色 [1 1 1]
'black' 或 'k' 黑色 [0 0 0]
'none' 無顏色 不適用

示例: [0.3 0.2 0.1]

示例: 'green'

'LineWidth' - 標記邊緣的寬度
0.5 (默認) | 正值

標記邊緣的寬度,指定為一個正值(以磅為單位)。

示例: 0.75

輸出參數

全部折疊

s - Scatter 對象
Scatter 對象

Scatter 對象。在創建散點圖后,可使用 s 訪問和修改散點圖的屬性。

擴展功能

示例

創建散點圖

創建 x 為 0 和 3*pi之間的 200 個等間距值。創建 y 為帶隨機干擾的余弦值。然后,創建一個散點圖。

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

 

改變圓圈大小

使用大小不同的圓圈創建一個散點圖。以平方磅為單位指定大小

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

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)

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')

指定標記符號

創建向量 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')

更改標記顏色和線條寬度

創建向量 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)

指定散點圖的子圖

創建一個包含兩個子圖的圖窗,並向每個子圖添加一個散點圖。對下部子圖中的散點圖使用填充的菱形標記。

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

ax2 = subplot(2,1,2);
scatter(ax2,x,y,'filled','d')

創建並修改散點序列

創建一個散點圖並返回散點序列對象 s

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

在創建散點序列后,使用 s 查詢並設置其屬性。將線寬設置為 0.6 磅。將標記邊緣顏色設置為藍色。使用 RGB 三元數顏色設置標記面。

注意:從 R2014b 開始,您可以使用圓點表示法設置屬性。如果您正在使用早期版本,請改用 set 函數,例如 set(s,'LineWidth',0.6)

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM