在matlab中更改图形视图

时间:2014-06-10 23:58:57

标签: matlab matlab-figure

是否有某种方法可以使用surf()样式数据格式来创建热图?

我有一堆z=f(x,y)形式的分散数据(因此我使用TriScatteredInterp使其与meshgrid一起使用)并且我想要显示z用热图。 surf已经做了类似于我想要的事情,除了你必须手动旋转图形以使视图自上而下看XY平面。

基本上,我想要类似于此的东西: Heat maps

但冲浪默认情况下会给你这个: enter image description here

3 个答案:

答案 0 :(得分:8)

根据Ben的回答,您可以使用view命令。 view允许您将绘图旋转到您希望的任何摄像机角度。

通常,您可以像这样调用命令:

view(AZ, EL);

AZ是方位角或水平旋转,而EL是垂直高程。这些都是度数。

在您的情况下,一旦您绘制了surf地块,请在转到下一个view(0, 90);之前使用subplotview(0, 90);是默认的2-D视图,这看起来直接开销。


通过这样做,您可以避免手动旋转绘图,然后使用campos确定给定绘图时摄像机位置。 view(0, 90);应该为您提供所需的信息。

旁注

执行view(2);还会为您提供默认的2D视图,它等于我们所讨论的view(0, 90);。通过view(3);,您可以获得默认的3D视图,如图中所示。 FWIW,3D图的默认方位角和高程为AZ = -37.5, EL = 30,当然也是。{/ p>

答案 1 :(得分:8)

虽然这里的答案已经说明了如何用冲浪做这件事,渲染3D表面感觉有点像矫枉过正......

pcolor直接创建所需的图片

(结果略好一些 - 在轴旁边有间隙)

figure(1)
pcolor(peaks)

figure(2)
surf(peaks)
view(2)

结果


pcolor pcolor Result


surf surf Result

答案 2 :(得分:4)

将视图旋转到您想要的效果。然后在终端中输入campos。这会显示相机位置。然后,您可以使用campos( your_desired )为将来的绘图设置摄像机位置。

例如,x, y视图通常是:

campos([4.0000    2.5000   86.6025])