matlab三维图、二维云图的可视化绘图

  • matlab三维图、二维云图的可视化绘图
  • 1.meshgrid生成数据矩阵
  • 2.可视化方案
  • 3.shading类型


matlab三维图、二维云图的可视化绘图

二维坐标系,单独的数据,利用三维图或者二维云图来进行可视化。

1.meshgrid生成数据矩阵

利用meshgrid()函数来生成二维坐标轴的矩阵,以便后续函数调用。

x=-20:0.5:20;
y=-20:0.5:20;
[X,Y]=meshgrid(x,y); % 产生网格数据并处理
f = function(x,y)	 % 对应的第三维数据

需要注意的一点是xy向量必须长度相同,否则会报错。

2.可视化方案

测试了五种绘图函数方案,效果如下:

  • surf()利用surf()函数绘制三维图。xy分别为云服务器可视化 数据可视化云图_数据可视化轴的二维坐标,f云服务器可视化 数据可视化云图_可视化_02轴的数据值。
figure          % surf画3维图
surf(X,Y,p)
shading interp
colorbar
title('surf三维图');

云服务器可视化 数据可视化云图_二维_03

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

云服务器可视化 数据可视化云图_云服务器可视化_04

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

云服务器可视化 数据可视化云图_二维_05

  • pcolor()直接获取二维云图,与surf() + view()的效果是相同的。
figure
pcolor(X, Y, p)     % 二维 相当于surf+view
shading interp
colorbar
title('pcolor')

云服务器可视化 数据可视化云图_可视化_06

  • contourf()直接获取二维云图,与pcolor()效果相同,区别是数据中心处会显示等高线。
figure              % 有等高线的pcolor
contourf(X, Y, p)
shading interp
colorbar
title('contourf')

云服务器可视化 数据可视化云图_matlab_07

上述五种方案进行总结对比,结果如下:

函数

说明

surf

是三维图,移动视角只看xz轴可得二位云图

surf+view

二维云图,利用view自动固定视角

surfl

与surf类似,云图颜色不同

pcolor

与surf+view的效果相同

contourf

云图中有等高线的pcolor

3.shading类型

在上述作图时,可以改变shading设置从而使得可视化图片展现不同的效果。

使用较多的有3种shading类型:1. flat、 2. faceted、 3. interp

其效果分别如下:

云服务器可视化 数据可视化云图_可视化_08


云服务器可视化 数据可视化云图_matlab_09


云服务器可视化 数据可视化云图_数据可视化_10

其中interp型的最光滑;flat型的效果居中;fceted型的网格最明显。
综上对比测试,最终选取pcolor()+shading interp的方案来实现云图的可视化。