矩阵的等高线图
全页折叠
contour(Z)contour(Z,n)contour(Z,v)contour(X,Y,Z)contour(X,Y,Z,n)contour(X,Y,Z,v)contour(...,LineSpec)contour(...,Name,Value)contour(ax,...)[C,h] = contour(...)
等高线图显示矩阵 Z 的等值线。使用 clabel 为等高线添加标签。
contour(Z) 绘制矩阵 Z 的等高线图,其中 Z 解释为有关 x-y 平面的高度。Z 必须至少是 2×2 矩阵,该矩阵包含至少两个不同值。x 值对应于 Z 的列索引,y 值对应于 Z 的行索引。自动选择等高线层级。contour(Z,n) 以 n 个等高线层级绘制矩阵 Z 的等高线图,其中 n 为标量。自动选择等高线层级。contour(Z,v) 绘制矩阵 Z 的等高线图,其中等高线位于单调递增向量 v 中指定的数据值。要在特定值位置显示单个等高线,请将 v 定义为一个二元素向量,并且两个元素都等于所需的等高线层级。例如,要在 k 层级绘制等高线,请使用 contour(Z,[k k])。指定向量 v 可将 LevelListMode 属性设置为 manual。contour(X,Y,Z)、contour(X,Y,Z,n) 和 contour(X,Y,Z,v) 使用 X 和 Y 绘制 Z 的等高线图,以确定 x 和 y
如果 X 和 Y 为向量,则 length(X) 必须等于 size(Z,2) 且 length(Y) 必须等于 size(Z,1)。这些向量必须是严格递增或严格递减的,并且不能包含任何重复值。
如果 X 和 Y 为矩阵,则其大小必须等于 Z 的大小。通常,应设置 X 和 Y 以使列严格递增或严格递减并且行是均匀的(或者使行严格递增或严格递减并且列是均匀的)。
如果 X 或 Y 的间距不规律,contour 将使用等间距的等高线网格计算等高线,然后转换成 X 或 Y 的数据。
contour(...,LineSpec) 使用 LineSpec 指定的线型和颜色绘制等高线。contour 忽略标记符号。contour(...,Name,Value) 使用一个或多个属性名-属性值对组指定等高线属性。Name 是属性名且必须置于单引号 ('') 内。Value 是对应的值。例如,'LineWidth',2 将等高线宽度设置为 2。有关等高线属性名和值的列表,请参阅 Contour 属性。contour(ax,...) 将图形绘制到 ax 指定的坐标区中,而不是当前坐标区 (gca) 中。[C,h] = contour(...) 返回等高线矩阵 C(包含定义等高线的数据)和 Contour 对象 h。Contour 对象的 ContourMatrix 属性也包含等高线矩阵。clabel 函数使用等高线矩阵标记等高线。
可以使用 Contour 对象属性控制等高线图外观。有关列表,请参阅 Contour 属性。
示例
全部折叠
创建等高线图
使用 meshgrid 函数生成矩阵 X 和 Y。创建第三个矩阵 Z 并绘制其等高线。
x = linspace(-2*pi,2*pi);
y = linspace(0,4*pi);
[X,Y] = meshgrid(x,y);
Z = sin(X)+cos(Y);
figure
contour(X,Y,Z)
指定等高线数
将来自 peaks 函数的数据存储于矩阵 X、Y 和 Z 中。对 Z 中的数据绘制 20 条等高线。
[X,Y,Z] = peaks; figure contour(X,Y,Z,20)
显示等高线标签
设置矩阵 X、Y 和 Z。通过将 ShowText 属性设置为 on 来创建一个等高线图并显示等高线标签。
x = -2:0.2:2;
y = -2:0.2:3;
[X,Y] = meshgrid(x,y);
Z = X.*exp(-X.^2-Y.^2);
figure
contour(X,Y,Z,'ShowText','on')
显示单个等高线
创建 peaks 函数的一个等高线图并仅显示 Z = 1 的一个等高线层级。
x = -3:0.125:3;
y = -3:0.125:3;
[X,Y] = meshgrid(x,y);
Z = peaks(X,Y);
v = [1,1];
figure
contour(X,Y,Z,v)
提示
- contour 函数无法确定输入数据中是否存在不连续性。将 NaN 值添加到数据中,以避免在这些区域中绘制等高线。