今天,来给大家讲解下Matlab中的网格曲面图绘制函数mesh,它一般用于绘制三维曲面,有实色边颜色,无面颜色。本文主要讲解mesh函数的常见用法、语法说明、创建网格图、为网格图指定颜色图颜色、为网格图指定真彩色、修改网格图外观等用法。
下面,我们首先给出Matlab中关于mesh函数的帮助文档如下:
>> help mesh mesh 3-D mesh surface. mesh(X,Y,Z,C) plots the colored parametric mesh 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. mesh(X,Y,Z) uses C = Z, so color is proportional to mesh height. mesh(x,y,Z) and mesh(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 mesh lines 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. mesh(Z) and mesh(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. mesh(...,'PropertyName',PropertyValue,...) sets the value of the specified surface property. Multiple property values can be set with a single statement. mesh(AX,...) plots into AX instead of GCA. mesh returns a handle to a surface plot object. AXIS, CAXIS, COLORMAP, HOLD, SHADING, HIDDEN and VIEW set figure, axes, and surface properties which affect the display of the mesh.
常见用法
mesh(X,Y,Z) mesh(Z) mesh(Z,C) mesh(___,C) mesh(ax,___) mesh(___,Name,Value) 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 创建半透明网格图。
s = mesh(_) 将返回一个图曲面对象。在创建网格图后,使用 s 修改网格图。
创建网格图
创建三个相同大小的矩阵。然后将它们绘制为一个网格图。该绘图使用 Z 确定高度和颜色。
[X,Y] = meshgrid(-8:.5:8); R = sqrt(X.^2 + Y.^2) + eps; Z = sin(R)./R; mesh(X,Y,Z)
为网格图指定颜色图颜色
通过包含第四个矩阵输入 C 来指定网格图的颜色。网格图使用 Z 确定高度,使用 C 确定颜色。使用颜色图指定颜色,该颜色图使用单个数字表示色谱上的颜色。使用颜色图时,C 与 Z 大小相同。向图中添加颜色栏以显示 C 中的数据值如何对应于颜色图中的颜色。
[X,Y] = meshgrid(-8:.5:8); R = sqrt(X.^2 + Y.^2) + eps; Z = sin(R)./R; C = X.*Y; mesh(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) = ones(25).*rand; % green CO(:,:,3) = ones(25).*rand; % blue mesh(X,Y,Z,CO)
修改网格图外观
指定值为 0.5 的 FaceAlpha 名称-值对组,以创建半透明网格曲面。要允许进一步修改,请将曲面对象赋给变量 s。
[X,Y] = meshgrid(-5:.5:5); Z = Y.*sin(X) - X.*cos(Y); s = mesh(X,Y,Z,'FaceAlpha','0.5')
输出结果为:
s = Surface (具有属性): EdgeColor: 'flat' LineStyle: '-' FaceColor: [1 1 1] FaceLighting: 'none' FaceAlpha: 0.5000 XData: [21x21 double] YData: [21x21 double] ZData: [21x21 double] CData: [21x21 double]
使用 s 可在创建曲面后访问和修改网格图的属性。例如,通过设置 FaceColor 属性,为网格图的面添加颜色。
s.FaceColor = 'flat';
转载文章,原文出处:MathWorks官网,由古哥整理发布
如若转载,请注明出处:https://iymark.com/articles/1744.html