Matlab三维图形绘制
不论是在科研工作中,还是在实际工程应用中,常常会遇到三维或者更多维数据的处理,并且将处理的数据在图形中显示出来,MATLAB平台也提供了很多关于三维图形绘制的函数,利用这些函数可以很方便的实现三维图形的绘制,本文主要讲解Matlab中关于三维图形绘制相关的函数。
操作方法
- 01
调用plot3函数来绘制三维曲线图,调用格式如下: plot3(x1,y1,z1,’PropertyName’,’PropertyValue’...); 其中PropertyName表示属性名,可以是颜色,线型,线宽等属性,PropertyValue表示属性值,对应属性名所包含的各种属性值。 该函数调用对应的m文件如下: clear all;%%表示清空所有变量及变量值%% t=0:pi/360:2*pi; x=sin(t); y=cos(t); z=2*x.^2+y.^2; plot3(x,y,z,'Color','r','LineWidth',2); %%三维曲线坐标轴和标题的设置%% xlabel('x'); ylabel('y'); zlabel('z'); title('三维曲线图'); axis([-1.2 1.2 -1.2 1.2 0.5 2.2]; m文件操作及运行结果如下:
- 02
调用surf、surfc(得到含有等高线的三维曲面图)、surfl(带灯光的三维曲面图)三个函数来绘制三维曲面图,调用格式如下: surf(x,y,z,’PropertyName’,’PropertyValue’...) 调用该函数对应m文件如下: t=-2:0.1:2; [x,y] =meshgrid(t);%%表示区域网格控制,目地是为了让x,y形成格点矩阵%% z=5*x.^2+8*y^3; surf(x,y,z); %%设置三维曲面x轴,y轴,z轴,标题对应内容及三个坐标轴的取值范围%% xlabel('X'); ylabel('Y'); zlabel('Z'); title('surf三维曲面图'); axis([-2.5 2.5 -2.5 2.5 -5 25]); m文件操作及运行结果如下:
- 03
调用mesh、meshc(得到含有等值线的三维网格图)、surfz(用于绘制包含零平面的网格线)三个函数来绘制三维曲面图,调用格式如下: mesh(x,y,z,’PropertyName’,’PropertyValue’...) t=-2:0.1:2; [x,y] =meshgrid(t);%%表示区域网格控制,目地是为了让x,y形成格点矩阵%% z=5*x.^2+8*y^3; mesh(x,y,z); %%设置三维曲面x轴,y轴,z轴,标题对应内容及三个坐标轴的取值范围%% xlabel('X'); ylabel('Y'); zlabel('Z'); title('mesh三维网格图'); axis([-2.5 2.5 -2.5 2.5 -5 25]); m文件操作及运行结果如下:
- 04
调用contour3函数绘制三维等高线图,调用格式如下: contour3(z,n); contour3(x,y,z,n); 编写该函数调用的m文件,如下: [x,y]=meshgrid(-1.5:0.01:1.5); z=x.*exp(-x.^2-2*y.^2); contour3(x,y,z,15); grid off;%%关闭网格%% %%设置三维等高线x轴,y轴,z轴,标题对应内容及三个坐标轴的取值范围%% xlabel('X'); ylabel('Y'); zlabel('Z'); title('contour3三维等高线图'); axis([-1.5 1.5 -1.5 1.5 -0.5 0.5]); m文件操作及运行结果如下:
- 05
特殊三维图形调用函数: cylinder:三维柱面图,sphere:三维球体 pie3: 三维饼状图, ribbon:三维彩带图
- 06
特殊三维图形绘制 对上面所讲的四种特殊三维图形进行绘制,首先编写对应的m文件如下: clear all; t=0:pi/20:2*pi; [x,y,z]=cylinder(1+cos(t)); subplot(2,2,1) surf(x,y,z); axis([-3 3 -3 3 0 1]); title('三维柱面图形'); subplot(2,2,2) sphere; axis([-1 1 -1 1 -1 1]); title('三维球体图形'); subplot(2,2,3) a=[1 2 2.5 3 1.5];%%各部分所占的比例%% b=[0 0 1 0 0];%%0,表示不单独分离出来,1表示分离出来表示%% pie3(a,b); title('三维饼状图形') subplot(2,2,4) [X2,Y2]=meshgrid(-2:0.25:2); Z2=peaks(X2,Y2); ribbon(Y2,Z2); title('三维彩带图形'); m文件操作及运行结果如下: