等值线图

等值线图通过将空间上一定范围内值相等的点依次连线来反映数据的分布特征。这种图在地质、气象、力学等领域有着广泛的应用,特点是简便、直观,而且二维等值线图还能表现三维信息。在MATLAB中可以作二维等值线图,也可以作三维等值线图。[大谦MATLAB,dqmatlab点com]

用contour函数生成二维等值线图。其调用格式为:

contour(Z) 绘矩阵Z的等值线图,其中Z可解释为x-y平面的高度。Z必须至少是2×2的矩阵。等值线的水平数和等值线水平值根据Z的最小值和最大值自动进行选取。x轴和y轴的范围分别为[1:n]和[1:m],其中[m,n]=size(Z)。

contour(Z,n) 根据Z矩阵的数据绘有n个水平的等值线图。

contour(Z,v) 根据向量v指定的数据值绘矩阵Z的等值线图。等值线水平等于length(v)。绘水平i的的单条等值线时,使用contour(Z,[i i])。

contour(X,Y,Z),contour(X,Y,Z,n)和contour(X,Y,Z,v) 绘Z的等值线图。X和Y指定x轴和y轴的范围。当X和Y为矩阵时,它们必须与Z具有相同的大小。

contour(...,LineSpec) 用LineSpec指定的线型和颜色绘等值线。contour函数忽略标记。

[C,h]=contour(...) 返回等值线矩阵C和图形对象的句柄向量。

利用peaks数据,在命令窗口键入

code.matlab
>> contour(peaks(50),15);
>> colormap cool

得等值线图如图2-1所示。

使用interp2函数和contour函数创建平滑化的等值线图。

code.matlab
>> P=peaks(50);
>> contour(interp2(P,5));
Document Image Document Image
\[\]

图2-1 等值线图 图2-2 平滑化后的等值线图

生成图2-2。进行平滑化需要一定的计算时间。

用clabel函数在等值线图中进行标注。其调用格式为:

clabel(C,h) 旋转标签并将它们插到等值线中。该函数只插入那些在等值线图中能装下的标签。

clabel(C,h,v) v向量给定等值线水平。创建标签,然后旋转标签并将它们插到等值线中去。

clabel(C,h,'manual') 将等值线标签放到鼠标选定的位置。单击鼠标左键,在最靠近图标中心位置下方的位置上进行标注。当图标处于图形窗口中时,单击回车键终止标注。旋转标签并插入到等值线图中。

clabel(C) 根据等值线结构参数C(contour函数的输出)的值把标签添加到当前等值线图中。该函数标注所有显示的等值线并随机选择标注位置。

clabel(C,v) 只标注向量v中给定的等值线水平。

clabel(C,'manual') 在鼠标选定的位置上放置等值线标签。

text_handle=clabel(…) 返回clabel函数创建的text对象的句柄。text对象的UserData属性包含显示的等值线值。如果调用不带h参数的clabel函数,text_handles还包含用于创建'+'标记的line对象。

clabel(…, 'PropertyName',propertyvalue,…) 可以为标签字符串指定其他文本属性值。

clabel(…, 'LabelSpacing',points) 指定同一条等值线上标签的间隔,单位为磅(72磅等于1英寸)。

下面创建、绘制并标注简单等值线图。

code.matlab
>> Z=peaks;
>> [C,h]=contour(interp2(Z,4));
>> text_handle=clabel(C,h);
>> set(text_handle,'BackgroundColor',[1 1 .6],...
    'Edgecolor',[.7 .7 .7])

生成图2-3。

Document Image
\[\]

图2-3 等值线图的标注