mesh
网格曲面图
说明
mesh(
将图形绘制到 ax
,___)ax
指定的坐标区中,而不是当前坐标区中。指定坐标区作为第一个输入参量。
mesh(___,
使用一个或多个名称-值对组参量指定曲面属性。例如,Name,Value
)'FaceAlpha',0.5
创建半透明网格图。
s = mesh(___)
将返回一个图曲面对象。在创建网格图后,使用 s
修改网格图。有关属性列表,请参阅 Surface 属性。
示例
创建网格图
创建三个相同大小的矩阵。然后将它们绘制为一个网格图。该绘图使用 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).*linspace(0.5,0.6,25); % green CO(:,:,3) = ones(25).*linspace(0,1,25); % 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 with properties: EdgeColor: 'flat' LineStyle: '-' FaceColor: [1 1 1] FaceLighting: 'none' FaceAlpha: 0.5000 XData: [21x21 double] YData: [21x21 double] ZData: [21x21 double] CData: [21x21 double] Use GET to show all properties
使用 s
可在创建曲面后访问和修改网格图的属性。例如,通过设置 FaceColor
属性,为网格图的面添加颜色。
s.FaceColor = 'flat';
输入参数
X
— x 坐标
矩阵 | 向量
x 坐标,指定为大小与 Z
相同的矩阵或长度为 n
的向量,其中 [m,n] = size(Z)
。如果未指定 X
和 Y
的值,mesh
将使用向量 (1:n)
和 (1:m)
。
您可以使用 meshgrid
函数创建 X
和 Y
矩阵。
曲面对象的 XData
属性存储 x 坐标。
示例: X = 1:10
示例: X = [1 2 3; 1 2 3; 1 2 3]
示例: [X,Y] = meshgrid(-5:0.5:5)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| categorical
| datetime
| duration
Y
— y 坐标
矩阵 | 向量
y 坐标,指定为大小与 Z
相同的矩阵或长度为 m
的向量,其中 [m,n] = size(Z)
。如果未指定 X
和 Y
的值,mesh
将使用向量 (1:n)
和 (1:m)
。
您可以使用 meshgrid
函数创建 X
和 Y
矩阵。
曲面对象的 YData
属性存储 y 坐标。
示例: Y = 1:10
示例: Y = [1 1 1; 2 2 2; 3 3 3]
示例: [X,Y] = meshgrid(-5:0.5:5)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| categorical
| datetime
| duration
Z
— z 坐标
矩阵
z 坐标,指定为矩阵。Z
必须有至少两行两列。
Z
指定每个 x-y 坐标处网格图的高度。如果不指定颜色,则 Z
还用于指定网格边颜色。
曲面对象的 ZData
属性存储 z 坐标。
示例: Z = [1 2 3; 4 5 6]
示例: Z = sin(x) + cos(y)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| categorical
| datetime
| duration
C
— 颜色数组
矩阵 | RGB 三元组的 m
×n
×3
数组
颜色数组,指定为由颜色图索引组成的 m
×n
矩阵或 RGB 三元组的 m
×n
×3
数组,其中 Z
为 m
×n
。
要使用颜色图颜色,请将
C
指定为矩阵。对于网格曲面上的每个网格点,C
指示颜色图中的一种颜色。曲面对象的CDataMapping
属性控制C
中的值如何对应颜色图中的颜色。要使用真彩色,请将
C
指定为 RGB 三元组数组。
有关详细信息,请参阅颜色图和真彩色之间的差异。
曲面对象的 CData
属性存储颜色数组。如果要对曲面着色进行更多控制,请使用 FaceColor
和 EdgeColor
属性。
ax
— 绘图所用的坐标区
坐标区对象
要在其中绘图的坐标区,指定为 axes
对象。如果未指定坐标区,则 mesh
在当前坐标区中绘图。
名称-值参数
将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参量名称,Value
是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: mesh(X,Y,Z,'FaceAlpha',0.5)
创建半透明网格图。
注意
此处所列的属性只是一部分。有关完整列表,请参阅 Surface 属性。
EdgeColor
— 边缘线条颜色
[0 0 0]
(默认) | 'none'
| 'flat'
| 'interp'
| RGB 三元组 | 十六进制颜色代码 | 'r'
| 'g'
| 'b'
| ...
边线颜色,指定为下面列出的值之一。默认颜色 [0 0 0]
对应于黑边。
值 | 描述 |
---|---|
'none' | 不绘制边。 |
'flat' | 根据 |
'interp' | 根据
|
RGB 三元组、十六进制颜色代码或颜色名称 | 对所有边使用指定的颜色。此选项不会使用
|
RGB 三元组和十六进制颜色代码对于指定自定义颜色非常有用。
RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于
[0,1]
范围内,例如[0.4 0.6 0.7]
。十六进制颜色代码是字符向量或字符串标量,以井号 (
#
) 开头,后跟三个或六个十六进制数字,范围可以是0
到F
。这些值不区分大小写。因此,颜色代码"#FF8800"
与"#ff8800"
、"#F80"
与"#f80"
是等效的。
此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。
颜色名称 | 短名称 | RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" | |
"green" | "g" | [0 1 0] | "#00FF00" | |
"blue" | "b" | [0 0 1] | "#0000FF" | |
"cyan" | "c" | [0 1 1] | "#00FFFF" | |
"magenta" | "m" | [1 0 1] | "#FF00FF" | |
"yellow" | "y" | [1 1 0] | "#FFFF00" | |
"black" | "k" | [0 0 0] | "#000000" | |
"white" | "w" | [1 1 1] | "#FFFFFF" |
以下是 MATLAB® 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。
RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|
[0 0.4470 0.7410] | "#0072BD" | |
[0.8500 0.3250 0.0980] | "#D95319" | |
[0.9290 0.6940 0.1250] | "#EDB120" | |
[0.4940 0.1840 0.5560] | "#7E2F8E" | |
[0.4660 0.6740 0.1880] | "#77AC30" | |
[0.3010 0.7450 0.9330] | "#4DBEEE" | |
[0.6350 0.0780 0.1840] | "#A2142F" |
LineStyle
— 线型
"-"
(默认) | "--"
| ":"
| "-."
| "none"
线型,指定为下表中列出的选项之一。
线型 | 描述 | 表示的线条 |
---|---|---|
"-" | 实线 |
|
"--" | 虚线 |
|
":" | 点线 |
|
"-." | 点划线 |
|
"none" | 无线条 | 无线条 |
FaceColor
— 面颜色
'flat'
(默认) | 'interp'
| 'none'
| 'texturemap'
| RGB 三元组 | 十六进制颜色代码 | 'r'
| 'g'
| 'b'
| ...
面颜色,指定为下表中的值之一。
值 | 描述 |
---|---|
'flat' | 根据 |
'interp' | 根据
|
RGB 三元组、十六进制颜色代码或颜色名称 | 对所有面使用指定的颜色。此选项不会使用
|
'texturemap' | 变换 CData 中的颜色数据,以便其符合曲面。 |
'none' | 不绘制面。 |
RGB 三元组和十六进制颜色代码对于指定自定义颜色非常有用。
RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于
[0,1]
范围内,例如[0.4 0.6 0.7]
。十六进制颜色代码是字符向量或字符串标量,以井号 (
#
) 开头,后跟三个或六个十六进制数字,范围可以是0
到F
。这些值不区分大小写。因此,颜色代码"#FF8800"
与"#ff8800"
、"#F80"
与"#f80"
是等效的。
此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。
颜色名称 | 短名称 | RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" | |
"green" | "g" | [0 1 0] | "#00FF00" | |
"blue" | "b" | [0 0 1] | "#0000FF" | |
"cyan" | "c" | [0 1 1] | "#00FFFF" | |
"magenta" | "m" | [1 0 1] | "#FF00FF" | |
"yellow" | "y" | [1 1 0] | "#FFFF00" | |
"black" | "k" | [0 0 0] | "#000000" | |
"white" | "w" | [1 1 1] | "#FFFFFF" |
以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。
RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|
[0 0.4470 0.7410] | "#0072BD" | |
[0.8500 0.3250 0.0980] | "#D95319" | |
[0.9290 0.6940 0.1250] | "#EDB120" | |
[0.4940 0.1840 0.5560] | "#7E2F8E" | |
[0.4660 0.6740 0.1880] | "#77AC30" | |
[0.3010 0.7450 0.9330] | "#4DBEEE" | |
[0.6350 0.0780 0.1840] | "#A2142F" |
FaceAlpha
— 面透明度
1 (默认) | 范围 [0,1]
中的标量 | 'flat'
| 'interp'
| 'texturemap'
面透明度,指定为下列值之一:
范围
[0,1]
中的标量 - 在所有面上使用统一的透明度。值为1
时完全不透明,值为0
时完全透明。介于0
和1
之间的值表示半透明。此选项不会使用AlphaData
属性中的透明度值。'flat'
- 根据AlphaData
属性中的值,对每个面使用不同的透明度。第一个顶点的透明度值确定整个面的透明度。首先您必须将AlphaData
属性指定为矩阵,大小与ZData
属性相同。FaceColor
属性也必须设置为'flat'
。'interp'
- 根据AlphaData
属性中的值,对每个面使用插值透明度。通过基于各顶点处透明度数值进行插值,每个面上的透明度会渐变。首先您必须将AlphaData
属性指定为矩阵,大小与ZData
属性相同。FaceColor
属性也必须设置为'interp'
。'texturemap'
- 变换AlphaData
中的数据,以便其符合曲面。
FaceLighting
— 光源对象对面的影响
'flat'
(默认) | 'gouraud'
| 'none'
光源对象对面的影响,指定为下列值之一:
'flat'
- 将光源均匀地应用于每个面上。使用此值可查看分面着色对象。'gouraud'
- 改变各个面的光源。计算顶点处的光照,然后以在各个面中进行光照插值。使用此值可查看曲面。'none'
- 不将来自光源对象的光源应用于各个面。
要向坐标区中添加光对象,请使用 light
函数。
注意
'phong'
值已被删除。请改用 'gouraud'
。
扩展功能
GPU 数组
通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。
用法说明和限制:
此函数接受 GPU 数组,但不在 GPU 上运行。
有关详细信息,请参阅Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。
分布式数组
使用 Parallel Computing Toolbox™ 在集群的组合内存中对大型数组进行分区。
用法说明和限制:
此函数在分布式数组上运行,但在客户端 MATLAB 中执行。
有关详细信息,请参阅Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox)。
版本历史记录
在 R2006a 之前推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)