本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

contour

矩阵的等高线图

说明

示例

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)

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

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

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

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

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

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

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')

创建 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 坐标,指定为大小与 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' 等标记符号。

您不需要同时指定线型和颜色。例如,如果省略线型并指定颜色,则绘图将使用指定的颜色显示实线。

线型说明表示的线条
-实线(默认)

--虚线

:点线

-.点划线

下表列出了可用的颜色选项。

选项说明对应的 RGB 三元组
'red''r'红色[1 0 0]
'green''g'绿色[0 1 0]
'blue''b'蓝色[0 0 1]
'yellow''y'黄色[1 1 0]
'magenta''m'品红色[1 0 1]
'cyan''c'青蓝色[0 1 1]
'white''w'白色[1 1 1]
'black''k'黑色[0 0 0]

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

名称-值对组参数

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

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

注意

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

等高线标签,指定为下列值之一:

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

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

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

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

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

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

输出参数

全部折叠

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

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

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

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

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

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

扩展功能

在 R2006a 之前推出