contour
矩阵的等高线图
语法
说明
contour(
创建一个包含矩阵 Z
)Z
的等值线的等高线图,其中 Z
包含 x-y 平面上的高度值。MATLAB® 会自动选择要显示的等高线。Z
的列和行索引分别是平面中的 x 和 y 坐标。
contour(___,
将要显示的等高线指定为上述任一语法中的最后一个参量。将 levels
)levels
指定为标量值 n
,以在 n
个自动选择的层级(高度)上显示等高线。要在某些特定高度绘制等高线,请将 levels
指定为单调递增值的向量。要在一个高度 (k
) 绘制等高线,请将 levels
指定为二元素行向量 [k k]
。
contour(___,
使用一个或多个名称-值对组参量指定等高线图的其他选项。请在所有其他输入参量之后指定这些选项。有关属性列表,请参阅 Contour 属性。Name,Value
)
contour(
在目标坐标区中显示等高线图。将坐标区指定为上述任一语法中的第一个参量。ax
,___)
返回等高线矩阵 M
= contour(___)M
,其中包含每个层级的顶点的 (x, y) 坐标。
示例
函数的等高线
创建矩阵 X
和 Y
,用于在 x-y 平面中定义一个网格。将矩阵 Z
定义为该网格上方的高度。然后绘制 Z
的等高线。
x = linspace(-2*pi,2*pi); y = linspace(0,4*pi); [X,Y] = meshgrid(x,y); Z = sin(X)+cos(Y); contour(X,Y,Z)
二十个层级的等高线
将 Z
定义为 X
和 Y
的函数。在本例中,调用 peaks
函数以创建 X
、Y
和 Z
。然后绘制 Z
的 20 个等高线。
[X,Y,Z] = peaks; contour(X,Y,Z,20)
一个层级的等高线
虚线等高线
带标签的等高线
将 Z
定义为两个变量 X
和 Y
的函数。然后创建该函数的等高线图,并通过将 ShowText
属性设置为 'on'
来显示标签。
x = -2:0.2:2; y = -2:0.2:3; [X,Y] = meshgrid(x,y); Z = X.*exp(-X.^2-Y.^2); contour(X,Y,Z,'ShowText','on')
具有特定小数位数和单位的标签
自 R2022b 开始提供
创建一个显示标签的等高线图,标签表示为小数点后带一位数字并后跟字母 m
。
contour(peaks,[-4 0 2],"ShowText",true,"LabelFormat","%0.1f m")
不同单位的标签
自 R2022b 开始提供
当需要计算值时,可以指定函数来格式化标签。例如,您可以定义一个函数来计算不同单位的标签值。
在名为 mylabelfun.m
的程序文件中定义此函数。该函数将输入从米转换为英尺,并返回一个字符串向量,其中包含以米为单位的每个值,并用括号括起相应的以英尺为单位的值。
function labels = mylabelfun(vals) feetPerMeter = 3.28084; feet = round(vals.*feetPerMeter); labels = vals + " m (" + feet + " ft)"; labels(vals == 0) = "0 m"; end
接下来,创建一个等高线图,并将 LabelFormat
属性指定为 mylabelfun
的句柄。
contour(peaks,[-4 0 2],"ShowText",true,"LabelFormat",@mylabelfun)
自定义线宽
创建 peaks
函数的等高线图。通过将 LineWidth
属性设置为 3
,使等高线更粗。
Z = peaks; [M,c] = contour(Z); c.LineWidth = 3;
不连续曲面上的等高线
在曲面上任何不连续的位置插入 NaN
值。contour
函数不会在这些区域中绘制等高线。
将矩阵 Z
定义为 peaks
函数的采样。将列 26
中的所有值替换为 NaN
值。然后绘制修改后的 Z
矩阵的等高线。
Z = peaks; Z(:,26) = NaN; contour(Z)
输入参数
X
— x 坐标
矩阵 | 向量
x 坐标,指定为大小与 Z
相同的矩阵或长度为 n
的向量,其中 [m,n] = size(Z)
。X
的默认值是向量 (1:n)
。
当 X
是矩阵时,这些值必须在一个维度上严格递增或递减,而在另一个维度上保持不变。这个变化的维度必须与在 Y
中变化的维度相反。您可以使用 meshgrid
函数创建 X
和 Y
矩阵。
当 X
是向量时,值必须严格递增或递减。
示例: X = 1:10
示例: X = [1 2 3; 1 2 3; 1 2 3]
示例: [X,Y] = meshgrid(1:10)
Contour
对象的 XData
属性存储 x 坐标。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Y
— y 坐标
矩阵 | 向量
y 坐标,指定为大小与 Z
相同的矩阵或长度为 m
的向量,其中 [m,n] = size(Z)
。Y
的默认值是向量 (1:m)
。
当 Y
是矩阵时,这些值必须在一个维度上严格递增或递减,而在另一个维度上保持不变。这个变化的维度必须与在 X
中变化的维度相反。您可以使用 meshgrid
函数创建 X
和 Y
矩阵。
当 Y
是向量时,值必须严格递增或递减。
示例: Y = 1:10
示例: Y = [1 1 1; 2 2 2; 3 3 3]
示例: [X,Y] = meshgrid(1:10)
Contour
对象的 YData
属性存储 y 坐标。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Z
— z 坐标
矩阵
z 坐标,指定为矩阵。此矩阵必须至少包含两行两列,并且必须至少包含两个不同值。
示例: Z = peaks(20)
Contour
对象的 ZData
属性存储 z 坐标。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
levels
— 层级
标量 | 向量
等高线层级,指定为整数标量或向量。使用此参量可控制等高线的数量和位置。如果未指定层级,contour
函数会自动选择层级。
要在 n 个自动选择的高度绘制等高线,请将 levels 指定为标量值 n。
要在某些特定高度绘制等高线,请将
levels
指定为单调递增值的向量。要在单个高度
k
处绘制等高线,请将levels
指定为二元素行向量[k k]
。
示例: contour(peaks,10)
在 peaks
函数上 10 个自动选择的高度处绘制等高线。
示例: contour(peaks,[-4 0 4])
在 peaks
函数上的 3 个特定高度处绘制等高线:-4
、0
和 4
。
示例: contour(peaks,[3 3])
绘制等高线以显示 peaks
函数的高度为 3
的位置。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
LineSpec
— 线型和颜色
字符向量 | 字符串标量
线型和颜色,指定为包含字符和符号的字符向量或字符串标量。字符和符号可以按任何顺序出现。您可以指定线型和/或线条颜色。忽略 'o'
等标记符号。
示例: '--g'
表示绿色虚线。
线型 | 描述 | 表示的线条 |
---|---|---|
"-" | 实线 |
|
"--" | 虚线 |
|
":" | 点线 |
|
"-." | 点划线 |
|
颜色名称 | 短名称 | 外观 |
---|---|---|
'red' | 'r' | |
'green' | 'g' | |
'blue' | 'b' | |
'cyan' | 'c' | |
'magenta' | 'm' | |
'yellow' | 'y' | |
'black' | 'k' | |
'white' | 'w' | |
ax
— 目标坐标区
Axes
对象
目标坐标区,指定为 Axes
对象。如果未指定坐标区,则 contour
在当前坐标区中绘图。
名称-值参数
将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参量名称,Value
是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: contour(Z,'ShowText','on')
显示等高线标签。
注意
此处所列的属性只是一部分。有关完整列表,请参阅 Contour 属性。
ShowText
— 等高线标签
'off'
(默认) | on/off 逻辑值
等高线标签,指定为 'on'
或 'off'
,或者指定为数值或逻辑值 1
(true
) 或 0
(false
)。值 'on'
等效于 true
,'off'
等效于 false
。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState
类型的 on/off 逻辑值。
'on'
- 沿等高线显示高度值。'off'
- 不为等高线添加标签。
LineWidth
— 线条宽度
0.5
(默认) | 正值
等高线宽度,指定为以磅为单位的正值。一磅等于 1/72 英寸。
LabelSpacing
— 标签间距
144
(默认) | 标量
沿等高线的标签间距,指定为以磅为单位的标量值,其中一磅等于 1/72 英寸。使用此属性可控制沿等高线的等高线标签的数量。值越小,标签越多。
必须将 ShowText
属性设置为 'on'
才能使 LabelSpacing
属性生效。
如果使用 clabel
函数显示标签,则 LabelSpacing
属性不起作用,并且绘图对每行显示一个标签。
输出参量
M
— 等高线矩阵
矩阵
等高线矩阵,以下面形式的两行矩阵形式返回。
Z1, x1,1, x1,2, ..., x1,N1, Z2, x2,1, x2,2, ..., x2,N2, Z3, ... N1, y1,1, y1,2, ..., y1,N1, N2, y2,1, y2,2, ..., y2,N2, N3, ...
矩阵的列定义等高线。每条等高线以一个包含 Z 和 N 值的列开始:
Zi - 第 i 条等高线的高度
Ni - 第 i 条等高线中的顶点数
(xij, yij) - 第 i 条等高线的顶点坐标,其中 j 的范围是从 1 到 Ni
c
— 等高线对象
Contour
对象
Contour
对象。在显示等高线图后,使用此对象设置属性。
扩展功能
GPU 数组
通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。
分布式数组
使用 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)