Matlab曲面图及其等高线图绘制函数surfc

4.3
(3)

今天,来说下Matlab中如何使用surfc函数绘制曲面图以及在曲面图下显示其等高线图投影的方法。本文主要讲解surfc函数的常见用法、语法说明、显示曲面图下的等高线图、指定曲面和等高线图的颜色图颜色、修改曲面图和等高线图的外观等常见方法。

Matlab曲面图及其等高线图绘制函数surfc

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

>> help surfc
 surfc  Combination surf/contour plot.
    surfc(...) is the same as SURF(...) except that a contour plot
    is drawn beneath the surface.

可以看出,surfc函数与surf函数的用法一致,这里再把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.

常见用法

surfc(X,Y,Z)
surfc(X,Y,Z,C)
surfc(Z)
surfc(Z,C)
surfc(ax,___)
surfc(___,Name,Value)
sc = surfc(___)

语法说明

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

此外,surfc(X,Y,Z,C) 还指定曲面的颜色。

surfc(Z) 创建一个曲面和等高线图,并将 Z 中元素的列索引和行索引分别用作 x 坐标和 y 坐标。

此外,surfc(Z,C) 还指定曲面的颜色。

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

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

sc = surfc(___) 返回包含图曲面对象和等高线对象的图形数组。使用 sc 修改所创建的曲面图和等高线图。

显示曲面图下的等高线图

创建三个相同大小的矩阵。然后将它们绘制为曲面,并在曲面图下显示等高线图。曲面的高度和颜色均使用 Z 确定。

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

Matlab曲面图及其等高线图绘制函数surfc

指定曲面和等高线图的颜色图颜色

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

[X,Y] = meshgrid(-3:.125:3);
Z = peaks(X,Y);
C = X.*Y;
surfc(X,Y,Z,C)
colorbar

Matlab曲面图及其等高线图绘制函数surfc

修改曲面图和等高线图的外观

通过将 FaceColor 名称-值对组的值指定为 ‘b’,创建一个蓝色曲面图,其下方有等高线图。要允许进一步修改,请将包含曲面和等高线对象的图形数组赋给变量 sc。

[X,Y] = meshgrid(-5:.5:5);
Z = Y.*sin(X) - X.*cos(Y);
sc = surfc(X,Y,Z,'FaceColor','b');

Matlab曲面图及其等高线图绘制函数surfc

对 sc 进行索引,以访问和修改所创建的曲面和等高线图的属性。可通过 sc(1) 访问曲面图,通过 sc(2) 访问等高线图。例如,通过设置 EdgeColor 属性来更改两个绘图的边颜色。

sc(1).EdgeColor = 'r';
sc(2).EdgeColor = 'b';

Matlab曲面图及其等高线图绘制函数surfc

共计3人评分,平均4.3

到目前为止还没有投票~

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

让我们改善这篇文章!

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

文章目录

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

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

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

你可能感兴趣的文章

发表回复

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