2013-02-12 128 views
1

我得到了一個由50乘以50的矩陣。我想顯示一個相應顏色的網格,其中y軸爲50,x軸爲200。我試着用玩網但:可視化三維數據集

  1. 我得到了很多的着色部之間的空白(我想該地區各地由正方形的完全填充的,最好用框架每個也)和

  2. 角度是3D-ish,而我希望它是「從上面直」。

對我來說是正確的工具,或者我應該用別的東西嗎?

到目前爲止,我一直在使用下面的代碼。我願意接受評論和建議。

surf(values, 'EdgeColor','none'); 
view(90, 90); 

回答

4

使用surf代替,例如:

% Create a grid of x and y points 
g= linspace(-2, 2, 20); 
[X, Y] = meshgrid(g, g); 

% Define the function Z = f(X,Y) 
Z = 10*exp(-X.^2-Y.^2); 

% "phong" and "gouraud" lighting are good for curved, interpolated surfaces. 
surf(X, Y, Z); 
view(30, 75); 
colormap(jet(256)); 
shading interp; 
light; 
lighting phong; 

enter image description here

或者,如果你真的想要一個 「從上述觀點」 使用view(0, 90);

enter image description here

+1

啊 - 我與* view * statem一同被發現然後(儘管我需要輸入90-90才能得到相同的效果,因爲我的比例是顛倒的)。現在,我想在那裏有一個網格,但我可以看到的網格有很強的優勢。最終,網格的顏色會比相鄰瓷磚的中間值稍暗。這是可行的嗎? – 2013-02-12 07:36:04

+0

是的,在我上面寫的代碼之後,使用'hold on',並使用'mesh'添加一個網格,並將其設置爲透明的,例如'h = mesh(X,Y,Z); alpha(h,0.1)' – bla 2013-02-12 07:49:23

+0

Oooh,這是一個很好的。一旦我到達我的MatLab計算機,我會試一試。我不需要在網格上面放置幾個z單元,對嗎?如果是這樣,我可以通過抵消它來做到這一點,否則我將不得不爲每個用於創建網格的值添加一小部分? – 2013-02-12 08:10:44