matlab绘图函数:举例说明surf、mesh、pcolor联系和区别

surf:


surf(X,Y,Z) 创建一个三维曲面图,它是一个具有实心边颜色和实心面颜色的三维曲面。
该函数将矩阵 Z 中的值绘制为 X 和 Y 定义的 x-y 平面中网格上方的高度。表面的颜色根据 Z 指定的高度而变化。
surf(X,Y,Z,C) 额外指定表面颜色。

surf(Z) 创建一个曲面图,并使用 Z 中元素的列和行索引作为 x 和 y 坐标。
surf(Z,C) 指定表面颜色。

surf(ax,___) 绘制到由 ax 指定的坐标区,而不是当前坐标区。将坐标区指定为第一个输入参数。

surf(___,Name,Value) 使用一个或多个名称-值对参数指定表面属性。例如,'FaceAlpha',0.5 创建一个半透明曲面。

s = surf(___) 返回图表表面对象。创建曲面后,使用 s 对其进行修改。有关属性列表,请参阅表面属性。

mesh:


mesh(X,Y,Z) 创建一个网格图,它是一个具有实心边颜色但没有面颜色的三维曲面
该函数将矩阵 Z 中的值绘制为 X 和 Y 定义的 x-y 平面中网格上方的高度。边缘颜色根据 Z 指定的高度而变化。
mesh(Z) 创建一个网格图,并使用 Z 中元素的列和行索引作为 x 和 y 坐标。

mesh(Z,C) 还指定边缘的颜色。
mesh(___,C) 还指定边缘的颜色。

mesh(ax,___) 绘制到由 ax 指定的坐标区,而不是当前坐标区。将坐标区指定为第一个输入参数。

mesh(___,Name,Value) 使用一个或多个名称-值对参数指定曲面属性。例如,'FaceAlpha',0.5 创建一个半透明的网格图。

pcolor:

pcolor(C) 使用矩阵 C 中的值创建伪彩色图。伪彩色图将矩阵数据显示为彩色单元格(称为面)的数组。
MATLAB将此图创建为 x-y 平面。表面由对应于面的角(或顶点)的 x 和 y 坐标网格定义。网格覆盖区域 X=1:n 和 Y=1:m,其中 [m,n] = size(C)。矩阵 C 指定顶点的颜色。每个面的颜色取决于其四个周围顶点之一的颜色。在四个顶点中,x-y 网格中最先出现的那个决定了面的颜色。

pcolor(X,Y,C) 指定顶点的 x 和 y 坐标。 C 的大小必须与 x-y 坐标网格的大小相匹配。例如,如果 X 和 Y 定义一个 m×n 网格,则 C 必须是一个 m×n 矩阵。

举例子前先看下meshgrid函数:

meshgrid:创建二维网格坐标,例子中会用到
[X,Y] = meshgrid(x,y) 根据向量 x 和 y 中包含的坐标返回二维网格坐标。 
X 是一个矩阵,其中每一行都是复制向量x,Y 是一个矩阵,其中每一列都是复制向量y。
由坐标 X 和 Y 表示的网格:x作为X轴坐标,y作为Y轴坐标

[X,Y] = meshgrid(x) 与 [X,Y] = meshgrid(x,x) 相同,返回网格大小为 length(x)-by-length(x) 的方形网格坐标。

[X,Y,Z] = meshgrid(x,y,z) 返回由向量 x、y 和 z 定义的 3-D 网格坐标。由 X、Y 和 Z 表示的网格的大小为 length(y)-by-length(x)-by-length(z)。

[X,Y,Z] = meshgrid(x) 与 [X,Y,Z] = meshgrid(x,x,x) 相同,返回 3-D 网格坐标,网格大小为 length(x)-by-length (x)-乘长(x)。

举例1:

[X,Y] = meshgrid(-5:.5:5); %生成长和宽都是[-5,5]的网格坐标
Z = Y.*sin(X) - X.*cos(Y);

figure(1);
set(gcf, 'unit', 'centimeters', 'position', [10 5 28 20]);

subplot(221)
mesh(X,Y,Z)
title('例1 mesh结果')

subplot(222)
surf(X,Y,Z)
title('例1 surf结果')

subplot(223)
surf(X,Y,Z)
view(0,90)
title('例1 surf俯视看x-y平面结果')

subplot(224)
pcolor(X,Y,Z)
title('例1 pcolor结果')

结果:

 举例2:

[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;

figure(2);
set(gcf, 'unit', 'centimeters', 'position', [10 5 28 20]);

subplot(221)
mesh(X,Y,Z)
title('例2 mesh结果')

subplot(222)
surf(X,Y,Z)
title('例2 surf结果')

subplot(223)
surf(X,Y,Z)
view(0,90)
title('例2 surf俯视看x-y平面结果')

subplot(224)
pcolor(X,Y,Z)
title('例2 pcolor结果')

结果:

 区别和联系:

从以上例子可以看出:


mesh生成一个带颜色的网格图,网格线的颜色和其值的大小有关
surf生成一个带颜色的曲面图,相当于对mesh生成的网格图中每个网格填充颜色,颜色和其值的大小有关

pcolor(X,Y,Z)相当于:surf(X,Y,Z),view(0,90)。即俯视看surf生成的三维曲面的x-y平面

参考:

Mesh surface plot - MATLAB mesh (mathworks.com)

Pseudocolor plot - MATLAB pcolor (mathworks.com)

Mesh surface plot - MATLAB mesh (mathworks.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值