可视化三维数据集
问题描述:
我得到了一个由50乘以50的矩阵。我想显示一个相应颜色的网格,其中y轴为50,x轴为200。我试着用玩网但:可视化三维数据集
我得到了很多的着色部之间的空白(我想该地区各地由正方形的完全填充的,最好用框架每个也)和
角度是3D-ish,而我希望它是“从上面直”。
是网对我来说是正确的工具,或者我应该用别的东西吗?
到目前为止,我一直在使用下面的代码。我愿意接受评论和建议。
surf(values, 'EdgeColor','none');
view(90, 90);
答
使用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;
或者,如果你真的想要一个 “从上述观点” 使用view(0, 90);
啊 - 我与* view * statem一同被发现然后(尽管我需要输入90-90才能得到相同的效果,因为我的比例是颠倒的)。现在,我想在那里有一个网格,但我可以看到的网格有很强的优势。最终,网格的颜色会比相邻瓷砖的中间值稍暗。这是可行的吗? – 2013-02-12 07:36:04
是的,在我上面写的代码之后,使用'hold on',并使用'mesh'添加一个网格,并将其设置为透明的,例如'h = mesh(X,Y,Z); alpha(h,0.1)' – bla 2013-02-12 07:49:23
Oooh,这是一个很好的。一旦我到达我的MatLab计算机,我会试一试。我不需要在网格上面放置几个z单元,对吗?如果是这样,我可以通过抵消它来做到这一点,否则我将不得不为每个用于创建网格的值添加一小部分? – 2013-02-12 08:10:44