MATLAB三维曲面作图(五)等高线绘图(黑白)

 如果我们在绘制的二维图形上添加该位置的高度,类似于地图上的等高线,就相当于用二维图形绘制出了三维的结果

close all
[X,Y] = meshgrid(-8:0.5:8);
R = sqrt(X.^2+Y.^2)+eps;
Z = sin(R)./R;

[C,h]=contour(X,Y,Z);
colormap gray
colorbar
set(h,'ShowText','on','TextStep',get(h,'LevelStep'))


结果:

 上述代码中,我们用到了contour函数来绘制等高线图

首先对这个函数进行一个介绍:

这个函数创建一个包含矩阵 Z 的等值线的等高线图,其中 Z 包含 x-y 平面上的高度值。

MATLAB 会自动选择要显示的等高线。Z 的列和行索引分别是平面中的 x 和 y 坐标。

返回值中的C表示等值线矩阵,也就是绘制等高线需要用到的坐标。

返回值中的h为图形对象的句柄向量,也就是代表所绘制图形。

完成这一步后,我们还要面对等高线标注的问题,

如果标注的过密,会出现文字重叠,如果过于稀疏,图像的物理意义 不方便阅读。

通过set函数来完成这一步标签的设置:

'ShowText':显示等高值标签命令,设置'on',打开显示标签;

'TextStep':表示我们接下来要设置标签的步长;

get(h,'LevelStep'):'LevelStep'的含义是等高线步长,我们得到等高线步长的值,并将它作为参数传递给set函数,表示设置标签的步长等于等高线的步长

可以看到图上的标签还是比较密集的,如果我们设置标签的步长是等高线的两倍:

figure
[C,h]=contour(X,Y,Z);
colormap gray
colorbar
set(h,'ShowText','on','TextStep',2*get(h,'LevelStep'))

可以得到以下结果 :

参考《高等光学仿真——光波导、激光》

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

matlab练习生

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

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

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

打赏作者

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

抵扣说明:

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

余额充值