今天,给各位带来Matlab中绘制矩阵等高线图的contour函数的使用方法,用于创建包含矩阵的等值线的等高线图。本文,主要讲解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,用于在 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 定义为 X 和 Y 的函数。在本例中,调用 peaks 函数以创建 X、Y 和 Z。然后绘制 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 定义为两个变量 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')
自定义线宽
创建 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)
转载文章,原文出处:MathWorks官网,由古哥整理发布
如若转载,请注明出处:https://iymark.com/articles/1360.html