2014-09-12 131 views
1

我需要繪製一個3D圖形,每個數據點使用顏色映射以第四個變量的值着色。假設我有4個變量X,Y,Z和W,其中W = f(X,Y,Z)。我想要一個以X,Y和Z爲三軸的3D圖。聲明scatter3(X,Y,Z,'filled','b')給了我一個三維散點圖,但我想通過將點作爲一個額外的參數來表示這個點的Z值(不同的區域:對於Z值較高的數據點的大圓圈和具有低Z值的數據點或通過使用顏色映射以不同顏色繪製數據點)。但是,我是MATLAB的新手,並且不知道如何繼續。任何幫助將不勝感激。帶4D數據的3D散點圖

在此先感謝!

+0

在你的聲明中'scatter3(X,Y,Z,'filled','b')',''b''代表藍色。由於您僅指定一種顏色,因此它將應用於所有點。如果您使用'scatter3(X,Y,Z,'填充',W)',標記應該有不同的顏色(相對於您的第4軸W)。另外請注意,您可以用一個數值向量(與其他值相同)替換「filled」參數,這將控制每個標記的大小。 – Hoki 2014-09-12 20:58:39

回答

6

所以只使用z的大小的矢量(4個輸入)以及顏色矢量(第五輸入):

z = 10*(1:pi/50:10*pi); 
y = z.*sin(z/10); 
x = z.*cos(z/10); 

figure(1) 
scatter3(x,y,z,z,z) 

view(45,10) 
colorbar 

矢量需要的大小爲0大,所以你可能需要調整z

enter image description here

+1

太糟糕了,30秒,我沒有圖像;) – Thomas 2014-09-12 21:01:32

+0

令人驚歎...感謝極其簡單的答案:) – BajajG 2014-09-12 21:23:01

+0

+1很好的答案! – 2014-09-12 21:33:52

1

您已經幾乎沒有...只需使用

scatter3(X,Y,Z,s,W); 

其中s是點大小(標量,例如3),W是與你的W值的向量。 您可能還需要發出

set(gcf, 'Renderer','OpenGL'); 

其中GCF讓你正在策劃在散射大量的數據時,顯著提高響應當前的身影。