从今天开始,给各位带来Matlab中的曲面图和网格图相关的函数。首先,今天给大家介绍Matlab中国绘制曲面图的函数surf用法。本文,主要讲解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)
指定曲面图的颜色图颜色
通过包含第四个矩阵输入 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
为曲面图指定真彩色
通过包含第四个矩阵输入 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)
修改曲面图的外观
通过指定以 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)
输出结果为:
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';
最后,你需要注意的是,加入你要自己分别输入xyz坐标的值,xyz三个坐标的数据量是有关系的。假设x有m个数据,y有n个数据,那么z的数据必须是m×n矩阵。
转载文章,原文出处:MathWorks官网,由古哥整理发布
如若转载,请注明出处:https://iymark.com/articles/1587.html