matlab三维图、二维云图的可视化绘图
matlab三维图、二维云图的可视化绘图
二维坐标系,单独的数据,利用三维图或者二维云图来进行可视化。
1.meshgrid生成数据矩阵
利用meshgrid()函数来生成二维坐标轴的矩阵,以便后续函数调用。
x=-20:0.5:20;
y=-20:0.5:20;
[X,Y]=meshgrid(x,y); % 产生网格数据并处理
f = function(x,y) % 对应的第三维数据
需要注意的一点是x和y向量必须长度相同,否则会报错。
2.可视化方案
测试了五种绘图函数方案,效果如下:
-
surf()利用
surf()函数绘制三维图。x和y分别为x
y
xy
xy轴的二维坐标,
f为z
z
z轴的数据值。
figure % surf画3维图 surf(X,Y,p) shading interp colorbar title('surf三维图');

-
surf() + view()利用
surf()函数绘制三维图。再利用view()函数固定视角,查看俯视图(也可手动调整视角查看)。从而得到二维图,视觉效果即为云图。figure % surf3维图利用view调整视图 surf(X,Y,p) shading interp colorbar view([90, 90]); % 调整试图位置 title('surf + view');

-
surfl()与
surf()函数效果相同,区别是得到的效果图颜色不同。同样也可以加上view()函数固定视角等。figure % surfl 与surf相比颜色不同 surfl(X, Y, p) shading interp colorbar title('surfl')

-
pcolor()直接获取二维云图,与
surf() + view()的效果是相同的。figure pcolor(X, Y, p) % 二维 相当于surf+view shading interp colorbar title('pcolor')
-
contourf()直接获取二维云图,与
pcolor()效果相同,区别是数据中心处会显示等高线。figure % 有等高线的pcolor contourf(X, Y, p) shading interp colorbar title('contourf')
将上述五种方案进行总结对比,结果如下:
| 函数 | 说明 |
|---|---|
| surf | 是三维图,移动视角只看xz轴可得二位云图 |
| surf+view | 二维云图,利用view自动固定视角 |
| surfl | 与surf类似,云图颜色不同 |
| pcolor | 与surf+view的效果相同 |
| contourf | 云图中有等高线的pcolor |
3.shading类型
在上述作图时,可以改变shading设置从而使得可视化图片展现不同的效果。
使用较多的有3种shading类型:1. flat、 2. faceted、 3. interp。
其效果分别如下:



其中interp型的最光滑;flat型的效果居中;fceted型的网格最明显。
综上对比测试,最终选取pcolor()+shading interp的方案来实现云图的可视化。
版权声明:本文为fantasty9413原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。