Matlab曲面图绘制函数surf使用方法

4.1
(11)

从今天开始,给各位带来Matlab中的曲面图和网格图相关的函数。首先,今天给大家介绍Matlab中国绘制曲面图的函数surf用法。本文,主要讲解surf函数的常见用法、语法说明、创建曲面图、指定曲面图的颜色图颜色、为曲面图指定真彩色以及修改曲面图的外观等。

Matlab曲面图绘制函数surf使用方法

下面,我们首先给出Matlab中关于surf函数的帮助文档如下:

>> help surf
 surf   3-D colored surface.
    surf(X,Y,Z,C) plots the colored parametric surface defined by
    four matrix arguments.  The view point is specified by VIEW.
    The axis labels are determined by the range of X, Y and Z,
    or by the current setting of AXIS.  The color scaling is determined
    by the range of C, or by the current setting of CAXIS.  The scaled
    color values are used as indices into the current COLORMAP.
    The shading model is set by SHADING.
 
    surf(X,Y,Z) uses C = Z, so color is proportional to surface height.
 
    surf(x,y,Z) and surf(x,y,Z,C), with two vector arguments replacing
    the first two matrix arguments, must have length(x) = n and
    length(y) = m where [m,n] = size(Z).  In this case, the vertices
    of the surface patches are the triples (x(j), y(i), Z(i,j)).
    Note that x corresponds to the columns of Z and y corresponds to
    the rows.
 
    surf(Z) and surf(Z,C) use x = 1:n and y = 1:m.  In this case,
    the height, Z, is a single-valued function, defined over a
    geometrically rectangular grid.
 
    surf(...,'PropertyName',PropertyValue,...) sets the value of the
    specified surface property.  Multiple property values can be set
    with a single statement.
 
    surf(AX,...) plots into AX instead of GCA.
 
    surf returns a handle to a surface plot object.
 
    AXIS, CAXIS, COLORMAP, HOLD, SHADING and VIEW set figure, axes, and
    surface properties which affect the display of the surface.

常见用法

surf(X,Y,Z)
surf(X,Y,Z,C)
surf(Z)
surf(Z,C)
surf(ax,___)
surf(___,Name,Value)
s = 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 对其进行修改。

创建曲面图

创建三个相同大小的矩阵。然后将它们绘制为一个曲面。曲面图对高度和颜色均使用 Z。

[X,Y] = meshgrid(1:0.5:10,1:20);
Z = sin(X) + cos(Y);
surf(X,Y,Z)

Matlab曲面图绘制函数surf使用方法

指定曲面图的颜色图颜色

通过包含第四个矩阵输入 C 来指定曲面图的颜色。曲面图使用 Z 表示高度,C 表示颜色。使用颜色图指定颜色,该颜色图使用单个数字表示色谱上的颜色。使用颜色图时,C 与 Z 大小相同。向图中添加颜色栏以显示 C 中的数据值如何对应于颜色图中的颜色。

[X,Y] = meshgrid(1:0.5:10,1:20);
Z = sin(X) + cos(Y);
C = X.*Y;
surf(X,Y,Z,C)
colorbar

Matlab曲面图绘制函数surf使用方法

为曲面图指定真彩色

通过包含第四个矩阵输入 CO 来指定曲面图的颜色。曲面图使用 Z 表示高度,CO 表示颜色。使用真彩色指定颜色,真彩色使用三个数字(即三元组)表示所有可能的颜色。使用真彩色时,如果 Z 为 m×n,则 CO 为 m×n×3。数组的第一页指示每种颜色的红色分量;第二页指示绿色分量;第三页指示蓝色分量。

[X,Y,Z] = peaks(25);
CO(:,:,1) = zeros(25); % red
CO(:,:,2) = rand(25,25); % green
CO(:,:,3) = rand(25,25).*3; % blue
surf(X,Y,Z,CO)

Matlab曲面图绘制函数surf使用方法

修改曲面图的外观

通过指定以 0.5 为值的 FaceAlpha 名称-值对组,来创建半透明曲面。要允许进一步修改,请将曲面对象赋给变量 s。

[X,Y] = meshgrid(-5:.5:5);
Z = Y.*sin(X) - X.*cos(Y);
s = surf(X,Y,Z,'FaceAlpha',0.5)

Matlab曲面图绘制函数surf使用方法

输出结果为:

s = 

  Surface (具有属性):

       EdgeColor: [0 0 0]
       LineStyle: '-'
       FaceColor: 'flat'
    FaceLighting: 'flat'
       FaceAlpha: 0.5000
           XData: [21x21 double]
           YData: [21x21 double]
           ZData: [21x21 double]
           CData: [21x21 double]

在创建曲面对象之后可使用 s 访问并修改其属性。例如,通过设置 EdgeColor 属性来隐藏边。

s.EdgeColor = 'none';

Matlab曲面图绘制函数surf使用方法

最后,你需要注意的是,加入你要自己分别输入xyz坐标的值,xyz三个坐标的数据量是有关系的。假设x有m个数据,y有n个数据,那么z的数据必须是m×n矩阵。

共计11人评分,平均4.1

到目前为止还没有投票~

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

文章目录

转载文章,原文出处:MathWorks官网,由古哥整理发布

如若转载,请注明出处:https://iymark.com/articles/1587.html

(18)
微信公众号
古哥的头像古哥管理团队
上一篇 2021年01月30日 19:34
下一篇 2021年02月01日 19:29

你可能感兴趣的文章

发表回复

登录后才能评论
微信小程序
微信公众号