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

  • Post author:
  • Post category:其他

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分别为

    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 版权协议,转载请附上原文出处链接和本声明。