matlab使用教程(51)—绘制等高线图

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 条 等高线。
[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

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

配电网和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值