2013-02-12 80 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