Matlab等高线图矩阵式绘制函数contour

4.3
(3)

今天,给各位带来Matlab中绘制矩阵等高线图的contour函数的使用方法,用于创建包含矩阵的等值线的等高线图。本文,主要讲解contour函数的常见用法、语法说明、函数的等高线、二十个层级的等高线、一个层级的等高线、虚线等高线、带标签的等高线、自定义线宽以及不连续曲面上的等高线等方法的使用。

Matlab等高线图矩阵式绘制函数contour

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

>> help contour
 contour Contour plot.
    contour(Z) draws a contour plot of matrix Z in the x-y plane, with
    the x-coordinates of the vertices corresponding to column indices
    of Z and the y-coordinates corresponding to row indices of Z. The
    contour levels are chosen automatically.
 
    contour(X,Y,Z) draws a contour plot of Z using vertices from the
    mesh defined by X and Y. X and Y can be vectors or matrices.
 
    contour(Z,N) and contour(X,Y,Z,N) draw N contour lines, choosing
    the levels automatically.
 
    contour(Z,V) and contour(X,Y,Z,V) draw a contour line for each
    level specified in vector V.  Use contour(Z,[v v]) or
    contour(X,Y,Z,[v v]) to draw contours for the single level v.
 
    contour(AX, ...) plots into the axes AX.
 
    [C,H] = contour(...) returns contour matrix C and a handle, H, to
    a contour object. These can be used as inputs to CLABEL. The
    structure of a contour matrix is described in the help for
    CONTOURC.
 
    contour(..., LineSpec) draws the contours using the line type and
    color specified by LineSpec (ignoring marker symbols).
 
    To specify additional contour properties, you can follow the
    arguments in any of the syntaxes described above with name-value
    pairs.
 
    Example:
       [c,h] = contour(peaks);
       clabel(c,h)

常见用法

contour(Z)
contour(X,Y,Z)
contour(___,levels)
contour(___,LineSpec)
contour(___,Name,Value)
contour(ax,___)
M = contour(___)
[M,c] = 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(ax,___) 在目标坐标区中显示等高线图。将坐标区指定为上述任一语法中的第一个参数。

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

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

函数的等高线

创建矩阵 X 和 Y,用于在 xy 平面中定义一个网格。将矩阵 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)
Matlab等高线图矩阵式绘制函数contour

二十个层级的等高线

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

[X,Y,Z] = peaks;
contour(X,Y,Z,20)
Matlab等高线图矩阵式绘制函数contour

一个层级的等高线

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

[X,Y,Z] = peaks;
v = [1,1];
contour(X,Y,Z,v)
Matlab等高线图矩阵式绘制函数contour

虚线等高线

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

[X,Y,Z] = peaks;
contour(X,Y,Z,'--')
Matlab等高线图矩阵式绘制函数contour

带标签的等高线

将 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')
Matlab等高线图矩阵式绘制函数contour

自定义线宽

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

Z = peaks;
[M,c] = contour(Z);
c.LineWidth = 3;
Matlab等高线图矩阵式绘制函数contour

不连续曲面上的等高线

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

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

Z = peaks;
Z(:,26) = NaN;
contour(Z)
Matlab等高线图矩阵式绘制函数contour

共计3人评分,平均4.3

到目前为止还没有投票~

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

让我们改善这篇文章!

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

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

如若转载,请注明出处:https://iymark.com/program/matlab-contour-map.html

发表评论

登录后才能评论
本站APP
本站APP
分享本页
返回顶部