1.为等高线图添加层级标签
此示例如何用相关值标记等高线。
等高线矩阵 C
是由
contour
、
contour3
和
contourf
返回的一个可选输出参数。
clabel 函数使用来自C
的值显示二维等高线的标签。
以下代码显示 peaks
函数的八个等高线层级。
clabel
只标记其大小足以容纳内联标签的等高线。
Z = peaks;
figure
[C,h] = contour(Z,8);
clabel(C,h)
title('Contours Labeled Using clabel(C,h)')
要以交互方式用鼠标选择要标记的等高线,请将 manual
选项传递给
clabel
,例如
clabel(C,h,'manual')。当鼠标处于图窗中时,该命令会显示一个十字准线光标。点击鼠标,会标记离光标最近的等高线。
2.改变等高线图的填充颜色
此示例演示如何更改已填充等高线图的颜色。
2.1 更改颜色图
通过改变颜色图设置已填充等高线图的颜色。将预定义的颜色图名称 hot
传递给
colormap
函数。
[X,Y,Z] = peaks;
figure
contourf(X,Y,Z,20)
colormap(hot)
title('Hot Colormap')
2.2 控制颜色值到颜色图的映射
通过将颜色图范围设置为比矩阵 Z
中的值大得多的范围值,保证只使用
hot
颜色图中间的颜色。
clim 函数用于控制数据值到颜色图的映射。使用此函数设置颜色图范围。
clim([-20,20])
title('Center of Hot Colormap')
如果使用的matlab版本低于R2022a ,使用 caxis([-20 20]) 更改颜色图范围。
3.突出显示特定等高线层级
此示例演示如何突出显示特定层级的等高线。
将 Z
定义为从
peaks
函数返回的矩阵。
Z = peaks(100);
对 Z
中的最小和最大数据值四舍五入取整,并分别将这些值存储到
zmin
和
zmax
中。将
zlevs 定义为40 个介于
zmin
和
zmax 之间的值,并
绘制等高线图。
zmin = floor(min(Z(:)));
zmax = ceil(max(Z(:)));
zinc = (zmax - zmin) / 40;
zlevs = zmin:zinc:zmax;
figure
contour(Z,zlevs)
将 zindex
定义为
zmin
与
zmax
之间索引值为 2 的整数值向量。
zindex = zmin:2:zmax;
保留之前的等高线图。创建第二个等高线图并使用 zindex 每隔一个整数值突出显示等高线。将线宽设置为 2。
hold on
contour(Z,zindex,'LineWidth',2)
hold off
4.合并等高线图和箭头图
在同一绘图上显示等高线和梯度向量。
沿 x 和 y 方向在从 -2 到 2 的网格上绘制 10 条
等高线。
![](https://i-blog.csdnimg.cn/blog_migrate/d98f8e94395f2956f09a3b2f2d07adcb.png)
[X,Y] = meshgrid(-2:0.2:2);
Z = X .* exp(-X.^2 - Y.^2);
contour(X,Y,Z,10)
使用 gradient
函数计算
Z
的二维梯度。
gradient
函数会返回
U
作为 x 方向上的梯度,返回
V 作为 y方向上的梯度。使用
quiver
函数显示指示梯度值的箭头。
[U,V] = gradient(Z,0.2,0.2);
hold on
quiver(X,Y,U,V)
hold off
5.带有主网格线和次网格线的等高线图
您可以通过拆分数据并创建两个重叠的等高线图来创建突出所选等高线的等高线图。
例如,创建 peaks 函数的等高线图,其中偶数编号的等高线为实线,奇数编号的等高线为虚线。为偶数编号的水平绘制一个等高线。然后,在其上覆盖以虚线为奇数编号的水平绘制的第二个等高线图。
major = -6:2:8;
minor = -5:2:7;
[cmajor,hmajor] = contour(peaks,'LevelList',major);
clabel(cmajor,hmajor)
hold on
[cminor,hminor] = contour(peaks,'LevelList',minor);
hminor.LineStyle = ':';
hold off