MATLAB三维曲面作图(六)等高线绘图(填色)

上一篇文章中,我们介绍了如何绘制等高线

但上一篇用到的contour函数绘制的等高线只有区域没有颜色

如果想要填充颜色,我们需要用到contourf函数
代码如下

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

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

我们只替换函数本身,就可以得到图示的效果


如果注释掉gray的语句

%colormap gray

可以得到如图的效果:

 

 另一种方法是用pcolor绘制,但此时没有等高线:

pcolor(X,Y,Z);
%colormap gray
colorbar

结果:

可以看出,这是将图形均匀地分为小正方形色块,并对每一个小正方形填充同样的颜色,有些类似我们在前几篇文章中介绍过的surf函数

同样的,添加下列语句使得颜色过渡更平滑:

shading interp



结果:

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