Matlab二维填充等高线图函数contourf

4.3
(4)

今天,给各位带来Matlab中绘制二维填充等高线图的contourf函数的使用方法,用于二维填充式等高线图。本文,主要讲解contourf函数的常见用法、语法说明、peaks 函数的等高线、十个层级的等高线、具有标签的特定层级的等高线、一个层级的等高线、虚线等高线、自定义线宽以及不连续曲面上的等高线等。

Matlab二维填充等高线图函数contourf

下面,我们首先给出Matlab中关于contourf函数的帮助文档如下:

>> help contourf
 contourf Filled contour plot.
    contourf(...) is the same as CONTOUR(...) except that contourf
    fills the regions between the contour lines with color. 
 
    Each color corresponds to a different contour interval. The
    intermediate contour intervals are defined by pairs of adjacent
    elements in the strictly increasing vector of contour levels.
    There are N-1 intermediate intervals when N contour levels have
    been specified. There are also two semi-infinite intervals, above
    and below the highest and lowest contour levels, respectively, for
    a total of N+1 intervals. The color at each point in the plot
    thus indicates which interval the data at that point falls into.
 
    Areas in which the data are undefined, as indicated by NaN-valued
    elements in the input matrix Z, are left unfilled.
 
    When you use the contourf(Z,V) syntax to specify a vector of
    (strictly increasing) contour levels, regions in which Z is less
    than V(1) are treated as a special case and are left unfilled, even
    though the data is defined there. In other words, the contour
    interval [-Inf V(1)] is treated as exception and is not assigned a
    color. You can avoid this behavior by ensuring that V(1) is smaller
    than the minimum finite value in Z.
 
    [C,H] = CONTOUR3(...) returns contour matrix C and a handle, H, to
    a contour object.
 
    Examples:
        z = peaks;
        [c,h] = contourf(z);
        clabel(c,h)
        colorbar
 
        z = peaks;
        v = [min(z(:)) -6:8];
        contourf(z,v)

常见用法

contourf(Z)
contourf(X,Y,Z)
contourf(___,levels)
contourf(___,LineSpec)
contourf(___,Name,Value)
contourf(ax,___)
M = contourf(___)
[M,c] = contourf(___)

语法说明

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

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

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

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

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

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

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

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

peaks 函数的等高线

将 Z 定义为两个变量的函数。在本例中,调用 peaks 函数以创建 Z。然后显示 Z 的填充等高线图,让 MATLAB® 选择等高线层级。

Z = peaks;
contourf(Z)
Matlab二维填充等高线图函数contourf

十个层级的等高线

将 Z 定义为两个变量 X 和 Y 的函数。然后在 Z 的 10 个层级上显示等高线。

x = linspace(-2*pi,2*pi);
y = linspace(0,4*pi);
[X,Y] = meshgrid(x,y);
Z = sin(X) + cos(Y);
contourf(X,Y,Z,10)
Matlab二维填充等高线图函数contourf

具有标签的特定层级的等高线

将 Z 定义为 X 和 Y 的函数。在本例中,调用 peaks 函数以创建 X、Y 和 Z。然后显示层级 2 和 3 上的等高线。

白色区域对应于小于 2 的高度。紫色区域对应于 2 和 3 之间的高度。黄色区域对应于大于 3 的高度。

[X,Y,Z] = peaks(50);
contourf(X,Y,Z,[2 3],'ShowText','on')
Matlab二维填充等高线图函数contourf

一个层级的等高线

将 Z 定义为 X 和 Y 的函数。在本例中,调用 peaks 函数以创建 X、Y 和 Z。然后在 Z = 2 处显示等高线。

[X,Y,Z] = peaks;
contourf(X,Y,Z,[2 2])
Matlab二维填充等高线图函数contourf

虚线等高线

创建等高线图,并指定虚线线型。

[X,Y,Z] = peaks;
contourf(X,Y,Z,'--')
Matlab二维填充等高线图函数contourf

自定义线宽

创建填充等高线图。通过将 LineWidth 属性设置为 3,使等高线更粗。

Z = peaks;
[M,c] = contourf(Z);
c.LineWidth = 3;
Matlab二维填充等高线图函数contourf

不连续曲面上的等高线

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

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

Z = peaks;
Z(:,26) = NaN;
contourf(Z)
Matlab二维填充等高线图函数contourf

共计4人评分,平均4.3

到目前为止还没有投票~

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

文章目录

转载文章,原文出处:MathWorks官网,由古哥整理发布

如若转载,请注明出处:https://iymark.com/articles/1375.html

(1)
微信公众号
古哥的头像古哥管理团队
上一篇 2021年01月11日 20:14
下一篇 2021年01月13日 19:36

你可能感兴趣的文章

微信小程序
微信公众号