MATLAB三维绘图(三)绘制等值线图
1、使用contour函数绘制等值图,示例:
%% 显示不同颜色的梯度图
clear; clc; close all;
x = -3.5:0.2:3.5;
y = -3.5:0.2:3.5;
[X,Y] = meshgrid(x,y); % 获取网格
Z = X.*exp(-X.^2-Y.^2);
subplot(2,1,1);
mesh(X,Y,Z); % 绘制三维图
axis square; % 坐标轴之间的尺度相等
subplot(2,1,2);
contour(X,Y,Z); % 显示不同高度的线段
axis square; % 坐标轴之间的尺度相等
效果显示:
2、使用clabel函数查看等值线上的值,示例:
%% 使用clabel函数查看等值线的值
clear; clc; close all;
x = -3.5:0.2:3.5;
y = -3.5:0.2:3.5;
[X,Y] = meshgrid(x,y);
Z = X.*exp(-X.^2-Y.^2);
[C,h] = contour(Z); % 显示梯度,并且获取梯度数据进行操作
clabel(C,h); % 显示梯度的值
效果显示:
3、使用contourf函数查看等值线,示例:
%% 使用contourf函数显示等值线,并且有颜色填充
clear; clc; close all;
x = -3.5:0.2:3.5;
y = -3.5:0.2:3.5;
[X,Y] = meshgrid(x,y);
Z = X.*exp(-X.^2-Y.^2);
contourf(Z); % 显示梯度,并且使用颜色进行填充
效果显示:
4、使用meshc函数和surfc函数查看原图和等值线图的对比,示例:
%% meshc和surfc显示三维图,并且显示不同的等高线
clear; clc; close all;
x = -3.5:0.2:3.5;
y = -3.5:0.2:3.5;
[X,Y] = meshgrid(x,y); % 获取网格
Z = X.*exp(-X.^2-Y.^2);
subplot(1,2,1);
meshc(X,Y,Z); % 绘制三维图,并且显示等高线
subplot(1,2,2);
surfc(X,Y,Z); % 绘制三维图,并且显示等高线
效果显示:
说明:一般情况下如果想看原来图像和等值线的对比图,在函数后面加字母c即可,如meshc查看mesh函数绘制图形的等值图和原图的对比。
4、使用隐含数绘制等值线图:
使用ezcontour函数绘制,示例:
%% 符号函数的等值线图
clear; clc; close all;
figure;
ezcontour('x.*exp(-x.^2-y.^2)',[-3 3]);
效果显示:
使用ezmeshc函数绘制,示例:
%% 带有等值线的三维网格图
clear; clc; close all;
figure;
ezmeshc('x.*exp(-5*x.^2-8*y.^2)');
效果显示:
使用ezsurfc函数绘制,示例:
%% 带有等值线的三维彩色的曲面图
clear; clc; close all;
figure;
ezsurfc('4*x.*exp(-4*x.^2 - 6*y.^2)');
效果显示: