Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

contour

矩阵的等高线图

  • Contour plot

说明

示例

contour(Z) 创建一个包含矩阵 Z 的等值线的等高线图,其中 Z 包含 x-y 平面上的高度值。MATLAB® 会自动选择要显示的等高线。Z 的列和行索引分别是平面中的 x 和 y 坐标。

示例

contour(X,Y,Z) 指定 Z 中各值的 x 和 y 坐标。

示例

contour(___,levels) 将要显示的等高线指定为上述任一语法中的最后一个参数。将 levels 指定为标量值 n,以在 n 个自动选择的层级(高度)上显示等高线。要在某些特定高度绘制等高线,请将 levels 指定为单调递增值的向量。要在一个高度 (k) 绘制等高线,请将 levels 指定为二元素行向量 [k k]

示例

contour(___,LineSpec) 指定等高线的线型和颜色。

示例

contour(___,Name,Value) 使用一个或多个名称-值对组参数指定等高线图的其他选项。请在所有其他输入参数之后指定这些选项。有关属性列表,请参阅 Contour 属性

contour(ax,___) 在目标坐标区中显示等高线图。将坐标区指定为上述任一语法中的第一个参数。

M = contour(___) 返回等高线矩阵 M,其中包含每个层级的顶点的 (x, y) 坐标。

示例

[M,c] = contour(___) 返回等高线矩阵和等高线对象 c。显示等高线图后,使用 c 设置属性。

示例

全部折叠

创建矩阵 XY,用于在 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)

Figure contains an axes object. The axes object contains an object of type contour.

Z 定义为 XY 的函数。在本例中,调用 peaks 函数以创建 XYZ。然后绘制 Z 的 20 个等高线。

[X,Y,Z] = peaks;
contour(X,Y,Z,20)

Figure contains an axes object. The axes object contains an object of type contour.

显示 peaks 函数在 Z = 1 处的等高线。

[X,Y,Z] = peaks;
v = [1,1];
contour(X,Y,Z,v)

Figure contains an axes object. The axes object contains an object of type contour.

创建 peaks 函数的等高线图,并指定虚线线型。

[X,Y,Z] = peaks;
contour(X,Y,Z,'--')

Figure contains an axes object. The axes object contains an object of type contour.

Z 定义为两个变量 XY 的函数。然后创建该函数的等高线图,并通过将 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')

Figure contains an axes object. The axes object contains an object of type contour.

创建 peaks 函数的等高线图。通过将 LineWidth 属性设置为 3,使等高线更粗。

Z = peaks;
[M,c] = contour(Z);
c.LineWidth = 3;

Figure contains an axes object. The axes object contains an object of type contour.

在曲面上任何不连续的位置插入 NaN 值。contour 函数不会在这些区域中绘制等高线。

将矩阵 Z 定义为 peaks 函数的采样。将列 26 中的所有值替换为 NaN 值。然后绘制修改后的 Z 矩阵的等高线。

Z = peaks;
Z(:,26) = NaN;
contour(Z)

Figure contains an axes object. The axes object contains an object of type contour.

输入参数

全部折叠

x 坐标,指定为大小与 Z 相同的矩阵或长度为 n 的向量,其中 [m,n] = size(Z)X 的默认值是向量 (1:n)

X 是矩阵时,这些值必须在一个维度上严格递增或递减,而在另一个维度上保持不变。这个变化的维度必须与在 Y 中变化的维度相反。您可以使用 meshgrid 函数创建 XY 矩阵。

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 坐标,指定为大小与 Z 相同的矩阵或长度为 m 的向量,其中 [m,n] = size(Z)Y 的默认值是向量 (1:m)

Y 是矩阵时,这些值必须在一个维度上严格递增或递减,而在另一个维度上保持不变。这个变化的维度必须与在 X 中变化的维度相反。您可以使用 meshgrid 函数创建 XY 矩阵。

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 = peaks(20)

Contour 对象的 ZData 属性存储 z 坐标。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

等高线层级,指定为整数标量或向量。使用此参数可控制等高线的数量和位置。如果未指定层级,contour 函数会自动选择层级。

  • 要在 n 个自动选择的高度绘制等高线,请将 levels 指定为标量值 n。

  • 要在某些特定高度绘制等高线,请将 levels 指定为单调递增值的向量。

  • 要在单个高度 k 处绘制等高线,请将 levels 指定为二元素行向量 [k k]

示例: contour(peaks,10)peaks 函数上 10 个自动选择的高度处绘制等高线。

示例: contour(peaks,[-4 0 4])peaks 函数上的 3 个特定高度处绘制等高线:-404

示例: contour(peaks,[3 3]) 绘制等高线以显示 peaks 函数的高度为 3 的位置。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

线型和颜色,指定为包含字符和符号的字符向量或字符串标量。字符和符号可以按任何顺序出现。您可以指定线型和/或线条颜色。忽略 'o' 等标记符号。

示例: '--g' 表示绿色虚线。

线型说明表示的线条
'-'实线

Sample of solid line

'--'虚线

Sample of dashed line

':'点线

Sample of dotted line

'-.'点划线

Sample of dash-dotted line, with alternating dashes and dots

颜色名称短名称外观
'red''r'

Sample of the color red

'green''g'

Sample of the color green

'blue''b'

Sample of the color blue

'cyan' 'c'

Sample of the color cyan

'magenta''m'

Sample of the color magenta

'yellow''y'

Sample of the color yellow

'black''k'

Sample of the color black

'white''w'

Sample of the color white

目标坐标区,指定为 Axes 对象。如果未指定坐标区,则 contour 在当前坐标区中绘图。

名称-值参数

示例: contour(Z,'ShowText','on') 显示等高线标签。

指定可选的、以逗号分隔的 Name,Value 对组参数。Name 为参数名称,Value 为对应的值。Name 必须放在引号中。您可采用任意顺序指定多个名称-值对组参数,如 Name1,Value1,...,NameN,ValueN 所示。

注意

此处所列的属性只是一部分。有关完整列表,请参阅 Contour 属性

等高线标签,指定为 'on''off',或者指定为数值或逻辑值 1 (true) 或 0 (false)。值 'on' 等效于 true'off' 等效于 false。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值。

  • 'on' - 沿等高线显示高度值。

  • 'off' - 不为等高线添加标签。

等高线宽度,指定为以磅为单位的正值。一磅等于 1/72 英寸。

沿等高线的标签间距,指定为以磅为单位的标量值,其中一磅等于 1/72 英寸。使用此属性可控制沿等高线的等高线标签的数量。值越小,标签越多。

必须将 ShowText 属性设置为 'on' 才能使 LabelSpacing 属性生效。

如果使用 clabel 函数显示标签,则 LabelSpacing 属性不起作用,并且绘图对每行显示一个标签。

输出参数

全部折叠

等高线矩阵,返回为二行矩阵。此矩阵包含等高线层级(高度)和每个层级上各顶点的坐标。对于 n 条等高线,数据按顺序排列在 n 组列中:

  • 每组中的第一列包含等高线层级和该层级上的顶点数量。顶部数字是等高线层级,底部数字是顶点数量。

  • 组中的后续列是顶点的 (x, y) 坐标。每列表示一个有序对组。顶部的数字是 x 坐标,底部的数字是 y 坐标。

例如,以下是等高线矩阵 M = contour(peaks(3)) 的前几列:

Contour 对象的 ContourMatrix 属性存储等高线矩阵。

Contour 对象。在显示等高线图后,使用此对象设置属性。

扩展功能

版本历史记录

在 R2006a 之前推出