




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据可视化与绘图第1页/共118页教学重点MATLAB的图形窗口MATLAB数据可视化的基本方法MATLAB的二维绘图与修饰MATLAB的三维绘图与修饰MATLAB的其他绘图方法第2页/共118页主讲内容图形窗口数据可视化二维绘图二维图形修饰处理三维绘图三维图形修饰处理特殊图形的绘制图像处理及动画演示第3页/共118页常用函数分类管理类figuresubplotzoomhold3-Dviewrotate3d生成类2-Dplotpolarfillplotyysemilogx,semilogy,loglogstairsstembar3-Dplot3surf,surfcmesh,meshc,meshzcontour,contour3,contourfwaterfallcylinder注释和特性类xlabelylabeltexttitlelegendboxsetgridaxis,axisequal,axisoffclabel3-Dtext3zlabelcolorbarcolormapshading第4页/共118页基本的绘图命令
绘制基本线性图的函数表
函
数
名功
能
描
述plot在x轴和y轴都按线性比例绘制二维图形plot3在x轴、y轴和z轴都按线性比例绘制三维图形loglog在x轴和y轴按对数比例绘制二维图形semilogx在x轴按对数比例,y轴按线性比例绘制二维图形semilogy在y轴按对数比例,x轴按线性比例绘制二维图形plotyy绘制双y轴图形第5页/共118页绘图的一般步骤基本的绘图步骤
步
骤典
型
代
码1.准备绘图数据x=0:0.2:12;y1=bessel(1,x);2.选择一个窗口并在窗口中给图形定位figure(1),subplot(2,2,1)3.调用基本的绘图函数h=plot(x,y1,x,y2,x,y3);4.选择线型和标记特性set(h,'LineWidth',2,{'LineStyle'},{'--';':';'-.'})5.设置坐标轴的极限值、标记符号和网格线axis([012-0.51])6.使用坐标轴标签、图例和文本对图形进行注释xlabel('Time')ylabel('Amplitude')7.输出图形print-depsc-tiff-r200myplot第6页/共118页3.1图形窗口3.1.1图形窗口的创建命令plot命令figure:Createafiguregraphicsobjectfigurefigure('PropertyName',PropertyValue,...)figure(h)h=figure(...)表3-1figure属性第7页/共118页命令plot命令plot功能线性二维图。在线条多于一条时,若用户没有指定使用颜色,则plot循环使用由当前坐标轴颜色顺序属性(currentaxesColorOrderproperty)定义的颜色,以区别不同的线条。在用完上述属性值后,plot又循环使用由坐标轴线型顺序属性(axesLineStyleOrderproperty)定义的线型,以区别不同的线条。第8页/共118页命令plotplot(X,Y)当X,Y均为实数向量,且为同维向量(可以不是同型向量),X=[x(i)],Y=[y(i)],则plot(X,Y)先描出点(x(i),y(i)),然后用直线依次相连;若X,Y为复数向量,则不考虑虚数部分。若X,Y均为同维同型实数矩阵,X=[X(i)],Y=[Y(i)],其中X(i),Y(i)为列向量,则plot(X,Y)依次画出plot(X(i),Y(i)),矩阵有几列就有几条线;若X,Y中一个为向量,另一个为矩阵,且向量的维数等于矩阵的行数或者列数,则矩阵按向量的方向分解成几个向量,再与向量配对分别画出,矩阵可分解成几个向量就有几条线;在上述的几种使用形式中,若有复数出现,则复数的虚数部分将不被考虑。第9页/共118页命令plotplot(Y)若Y为实数向量,Y的维数为m,则plot(Y)等价于plot(X,Y),其中x=1:m;若y为实数矩阵,则把y按列的方向分解成几个列向量,而y的行数为n,则plot(Y)等价于plot(X,Y)其中x=[1;2;…;n];在上述的几种使用形式中,若有复数出现,则复数的虚数部分将不被考虑。plot(X1,Y1,X2,Y2,…),其中Xi与Yi成对出现,plot(X1,Y1,X2,Y2,…)将分别按顺序取两数据Xi与Yi进行画图。若其中仅仅有Xi或Yi是矩阵,其余的为向量,向量维数与矩阵的维数匹配,则按匹配的方向来分解矩阵,再分别将配对的向量画出。plot(X1,Y1,LineSpec1,X2,Y2,LineSpec2…)将按顺序分别画出由三参数定义Xi,Yi,LineSpeci的线条。其中参数LineSpeci指明了线条的类型,标记符号,和画线用的颜色。在plot命令中我们可以混合使用三参数和二参数的形式:plot(X1,Y1,LineSpec1,X2,Y2,X3,Y3,LineSpec3)plot(…,'PropertyName',PropertyValue,…)对所有的用plot生成的line图形对象中指定的属性进行恰当的设置。第10页/共118页【例3-1】创建一个图形窗口,在此图形窗口内作出函数y=x2-2x+4的图像。编程:figurex=0:0.0001:2;y=x.^2-2*x+4;plot(x,y)3.1图形窗口第11页/共118页命令subplot:Createandcontrolmultipleaxessubplot(m,n,p)subplot(m,n,p,'replace')subplot(m,n,p,'align')subplot(h)subplot('Position',[leftbottomwidthheight])h=subplot(...)3.1图形窗口第12页/共118页subplot函数可以实现多个图形的绘制:>>x=0:.1:20;>>subplot(2,2,1)>>plot(x,sin(x));>>x=0:.1:20;>>subplot(2,2,2)>>plot(x,cos(x));3.1图形窗口第13页/共118页subplot(2,2,3)x=0:.1:2;y1=tan(x);plot(x,y1,'--b*');3.1图形窗口第14页/共118页3.1.2工具栏的使用熟悉各工具栏相应的功能3.1图形窗口第15页/共118页【例】%该程序用于绘制三维的螺旋曲线图t=0:pi/50:20*pi;plot3(sin(t),cos(2*t),sin(t)+cos(t))3.1图形窗口第16页/共118页3.2数据可视化将用户所收集或通过某些实验得到的数据反映到图像上,以此来观察数据所反映的各种内在关系。第17页/共118页TITLEGraphtitle.TITLE('text')addstextatthetopofthecurrentaxis.TITLE('text','Property1',PropertyValue1,'Property2',PropertyValue2,...)setsthevaluesofthespecifiedpropertiesofthetitle.H=TITLE(...)returnsthehandletothetextobjectusedasthetitle.3.2.1绘制离散图形x=0:.1:2;y1=sin(x);y2=sin(x-0.25);y3=sin(x-0.5);plot(x,y1,'b^',x,y2,'r*',x,y3,'gd')title('Therethreelines')第18页/共118页【例3-5】画出下面含参数方程的图像X=2(cost+tsint)Y=2(sint-tcost),t的取值为[0,4π]t1=0:pi/5:4*pi;t2=0:pi/20:4*pi;x1=2*(cos(t1)+t1.*sin(t1));y1=2*(sin(t1)-t1.*cos(t1));x2=2*(cos(t2)+t2.*sin(t2));y2=2*(sin(t2)-t2.*cos(t2));subplot(2,2,1),plot(x1,y1,'r.'),title('图1')subplot(2,2,2),plot(x2,y2,'r.'),title('图2')subplot(2,2,3),plot(x1,y1),title('图3')subplot(2,2,4),plot(x2,y2),title('图4')要使图像更精确,一定要多选一些数据点。3.2.2连续情况第19页/共118页3.3二维绘图二维曲线图在MATLAB中的绘制是最为简便的。如果将X轴和Y轴的数据分别保存在两个向量中,同时向量的长度完全相等,那么可以直接调用函数进行二维图形的绘制。在MATLAB中,使用plot函数进行二维曲线图的绘制。
第20页/共118页1.plot(x)Linear2-Dplotplot(Y)plot(X1,Y1,...)plot(X1,Y1,LineSpec,...)plot(...,'PropertyName',PropertyValue,...)plot(axes_handle,...)【例】a=rand(1,10);b=rand(5,5);subplot(1,2,1),plot(a)subplot(1,2,2),plot(b)3.3.1plot绘图命令第21页/共118页2.PLOT(X,Y)plotsvectorYversusvectorX.IfXorYisamatrix,thenthevectorisplottedversustherowsorcolumnsofthematrix,whicheverlineup.IfXisascalarandYisavector,length(Y)disconnectedpointsareplotted.x=0:0.01:10;y=tan(x);plot(x,y)3.3.1plot绘图命令第22页/共118页3.PLOT(X1,Y1,X2,Y2,…)这种用法中(Xi,Yi)必须是成对出现的x=linspace(-3,5,100);y=cos(x);z=sin(x);plot(x,y,x,z)title('一条正弦曲线和一条余弦曲线')xlabel('x的取值范围')ylabel('Y和Z的值')3.3.1plot绘图命令第23页/共118页x=0:.1:2;y1=sin(x);plot(x,y1,'-.b')4.PLOT(X1,Y1,s)S为单引号标记的字符串,用来表示所画数据点的类型、大小、颜色以及数据点之间连线的类型、粗细、颜色等,实际应用中,s是某些字母或符号的组合。3.3.1plot绘图命令第24页/共118页曲线的色彩、线型和数据点型参数定义
颜
色
符
号含
义数
据
点
型含
义线
型含
义b蓝色.点-实线g绿色xX符号:点线r红色++号-.点划线c篮绿色h六角星形--虚线m紫红色*星号(空白)不画线y黄色s方形
k黑色d菱形
3.3.1plot绘图命令第25页/共118页x=0:.1:2;y1=sin(x);y2=sin(x-0.25);y3=sin(x-0.5);plot(x,y1,'-.b',x,y2,'--r*',x,y3,'-.gh')title('Therethreelines')5.PLOT(X1,Y1,s,X2,Y2,s)3.3.1plot绘图命令第26页/共118页1.MATLAB提供了polar函数来在极坐标下绘制图形:POLARPolarcoordinateplot.polar(theta,rho)polar(theta,rho,LineSpec)Thepolarfunctionacceptspolarcoordinates,plotstheminaCartesianplane,anddrawsthepolargridontheplane.polar(theta,rho)createsapolarcoordinateplotoftheanglethetaversustheradiusrho.thetaistheanglefromthex-axistotheradiusvectorspecifiedinradians;rhoisthelengthoftheradiusvectorspecifiedindataspaceunits.polar(theta,rho,LineSpec)LineSpecspecifiesthelinetype,plotsymbol,andcolorforthelinesdrawninthepolarplot.
3.3.2其他坐标系下的绘图命令第27页/共118页3.3.2其他坐标系下的绘图命令x=0:0.01:10;y1=sin(x);y2=cos(x-2.5);polar(y1,y2,'-r+')第28页/共118页3.3.2其他坐标系下的绘图命令【例】在极坐标下画出下面函数的图像:t=linspace(0,24*pi,1000);r=exp(cos(t))-2*cos(4.*t)+(sin(t./12)).^5;polar(t,r)第29页/共118页3.3.2其他坐标系下的绘图命令Createasimplepolarplotusingadashedredline:t=0:.01:2*pi;polar(t,sin(2*t).*cos(2*t),'--r')第30页/共118页3.3.2其他坐标系下的绘图命令2.半对数坐标系下绘图semilogxPlotthereal-worldvaluesoffiobjectsonalogarithmicallyscaledx-axisandalinearlyscaledy-axis【例】比较函数y=10x在半对数坐标系与直角坐标系下的图像。closeallx=0:0.01:1;y=10.^x;subplot(1,2,1),semilogy(x,y)subplot(1,2,2),plot(x,y)第31页/共118页3.3.2其他坐标系下的绘图命令3.双对数坐标系下绘图loglogLog-logscaleplotloglog(Y)loglog(X1,Y1,...)loglog(X1,Y1,LineSpec,...)loglog(...,'PropertyName',PropertyValue,...)【Examples】Createasimpleloglogplotwithsquaremarkers.x=logspace(-1,2);loglog(x,exp(x),'-s')gridon第32页/共118页3.3.2其他坐标系下的绘图命令4.双y轴坐标plotyyCreategraphswithy-axesonbothleftandrightsideSyntaxplotyy(X1,Y1,X2,Y2)plotyy(X1,Y1,X2,Y2,'function')plotyy(X1,Y1,X2,Y2,'function1','function2')【例】x=0:0.01:20;y1=200*exp(-0.05*x).*sin(x);y2=0.8*exp(-0.5*x).*sin(10*x);[AX,H1,H2]=plotyy(x,y1,x,y2,'plot');第33页/共118页3.3.2其他坐标系下的绘图命令clcclearcloseallx=0:0.01:20;y1=200*exp(-0.05*x).*sin(x);y2=0.8*exp(-0.5*x).*sin(10*x);[AX,H1,H2]=plotyy(x,y1,x,y2,'plot');set(get(AX(1),'Ylabel'),'String','LeftY-axis')set(get(AX(2),'Ylabel'),'String','RightY-axis')xlabel('Zeroto20\musec.')title('Labelingplotyy')set(H1,'LineStyle','--')set(H2,'LineStyle',':')第34页/共118页3.4二维图形修饰处理简单的绘图命令并不能满足我们对可视化的要求,为了让所绘制的图形让人看起来舒服并易懂,我们需要对图形进行修饰。第35页/共118页3.4.1坐标轴控制axis为最常用的坐标轴控制命令,用来控制坐标轴的显示、刻度和长度特征等。使用格式见表3-11.命令:axis([xminxmaxyminymax])axis([xminxmaxyminymaxzminzmaxcmincmax])……第36页/共118页3.4.1坐标轴控制【例】x=0:.025:pi/2;plot(x,tan(x),'-ro')Therightfigureshowsamoresatisfactoryplotaftertyping:axis([0pi/205])第37页/共118页3.4.2图形注释注释图形标题及轴名称title
:Addtitletocurrentaxestitle('string')title(fname)title(...,'PropertyName',PropertyValue,...)xlabel,ylabel,zlabel:Labelthex-,y-,andz-axisxlabel('string')xlabel(fname)xlabel(...,'PropertyName',PropertyValue,...)第38页/共118页3.4.2图形注释x=linspace(0,6,100);plot(x,cos(x),'k',x,1./cosh(x),'k',[4.73,4.73],[-1,1],'k')xlabel('x')ylabel('valueoffunctions')title('visualizationoftwointersectingscurves')第39页/共118页3.4.2图形注释2.标注图形最常用的两个命令是text与gtextx=linspace(0,6,100);plot(x,cos(x),'k',x,1./cosh(x),'k',[4.73,4.73],[-1,1],'k')xlabel('x')ylabel('valueoffunctions')title('visualizationoftwointersectingscurves')text(4.8,-0.1,'x=4.73')text(2.1,0.3,'1/cosh(x)')text(1.2,-0.4,'cos(x)')第40页/共118页3.4.2图形注释【例】画出正弦函数在[0,2π]上的图像,并标出sin(3π/4)、sin(5π/4)在图像上的位置,以及在曲线上标出函数名。编程:x=0:pi/50:2*pi;plot(x,sin(x));xlabel('xValue'),ylabel('sin(x)')text(3*pi/4,sin(3*pi/4),'<---sin(3pi/4)')text(5*pi/4,sin(5*pi/4),'sin(5pi/4)\rightarrow','HorizontalAlignment','right')gtext('y=sin(x)')第41页/共118页3.4.2图形注释plot(0:pi/20:2*pi,sin(0:pi/20:2*pi))text(pi,0,'\leftarrowsin(\pi)','FontSize',18)第42页/共118页3.4.2图形注释3.标注图例当在一幅图中出现多种曲线时,用户可以根据自己的需要,利用legend命令对不同的图例进行说明。它的使用格式见表3-17.legend('string1','string2',...)legend(h,'string1','string2',...)legend(string_matrix)legend(h,string_matrix)legend(axes_handle,...)legend('off')第43页/共118页3.4.2图形注释x=-pi:pi/20:pi;plot(x,cos(x),'-ro',x,sin(x),'-.b')h=legend('cos','sin',2);第44页/共118页3.4.2图形注释标注函数:legend(s1,s2,…,sn,'Location')【例】x=linspace(0,6,100);plot(x,cos(x),'r-',x,1./cosh(x),'b--',[4.73,4.73],[-1,1],'g')xlabel('x')ylabel('valueoffunctions')title('visualizationoftwointersectingscurves')text(4.8,-0.1,'x=4.73')legend('cos(x)','1/cosh(x)')第45页/共118页3.4.2图形注释4.控制分隔线在图形绘制过程中,为了精确地知道图形上某点的坐标,需要绘制坐标网格来定位,MATLAB语言中提供了grid函数来实现这一功能:gridoff命令关闭坐标网格;gridon命令打开坐标网格gridmirror命令使用更细化的网格;grid(AX,…)命令使用AX坐标系代替当前坐标系。
GRIDGridlines.GRIDONaddsmajorgridlinestothecurrentaxes.GRIDOFFremovesmajorandminorgridlinesfromthecurrentaxes.GRIDMINORtogglestheminorgridlinesofthecurrentaxes.GRID,byitself,togglesthemajorgridlinesofthecurrentaxes.GRID(AX,...)usesaxesAXinsteadofthecurrentaxes.第46页/共118页3.4.2图形注释x=linspace(-5,5,100);y=x.^4+22*x.^2-6*x+10;plot(x,y)gridon第47页/共118页3.4.2图形注释x=-pi:pi/20:pi;plot(x,cos(x),'-ro',x,sin(x),'-.b')h=legend('cos','sin',2);gridon第48页/共118页3.4.2图形注释x=-pi:pi/20:pi;plot3(x,cos(x),sin(x),'s-.g')gridon第49页/共118页3.4.3图形放大与缩小ZoomZoominandoutona2-Dplotzoomonzoomoffzoomoutzoomresetzoomzoomxonzoomyonzoom(factor)zoom(fig,option)第50页/共118页3.4.4颜色控制在计算机中,颜色是通过对红。绿、蓝三种颜色进行适当的调整来得到的。在MATLAB中,这种调配是用一个三维向量[RGB]实现的,其中R、G、B的值代表3种颜色之间的相对亮度,它们的取值范围在0-1之间。见表3-21.第51页/共118页3.4.4颜色控制控制及实现颜色调配的主要命令为colormap。colormap(map)colormap('default')cmap=colormapThefollowingcommandsdisplaytheflujetdatausingthejetcolormap.loadflujetimage(X)colormap(jet)第52页/共118页3.4.4颜色控制色图及调用函数见表3-23.surf(peaks(30))colorbar('YTickLabel',...{'Freezing','Cold','Cool','Neutral','Warm','Hot','Burning'})第53页/共118页【练习】【练习】编程绘出函数在轴标签“x”,y轴标签“y”,以及图形的标题“线型设置为虚线,并在图形中添加网格线。区间上的曲线,并在图形中加上x”,将曲线的颜色设置为红色,x=0:0.1:10;y=3*x.*exp(-x)+log(5*x)+2;plot(x,y,’r--’);xlabel('x'),ylabel('y')title('y=3x*exp(-x)+ln(5x)+2')gridon第54页/共118页【练习】t=0:pi/20:2*pi;plot(t,t.*cos(t),'-.r*')holdonplot(exp(t/100).*sin(t-pi/2),'--mo')plot(sin(t-pi),':bs')holdoff【练习】请写出以下程序所绘制的函数,并尝试自行在Matlab软件中编写运行。第55页/共118页3.5三维图形3.5.1三维曲线绘图命令1.plot3命令plot3(X1,Y1,Z1,...)plot3(X1,Y1,Z1,LineSpec,...)plot3(...,'PropertyName',PropertyValue,...)ExamplesPlotathree-dimensionalhelix.t=0:pi/50:10*pi;plot3(sin(t),cos(t),t,'^g-')gridonaxissquare第56页/共118页【例】在圆柱表面绘制正弦曲线,圆柱表面正弦曲线的坐标由下式获得:令a=10.0,b=1.0,c=0.3,且t的取值范围为[0,2π]。则程序为:t=linspace(0,2*pi,200);a=10;b=1.0;c=0.3;x=b*cos(t);y=b*sin(t);z=c*cos(a*t);plot3(x,y,z,'r')axisequal3.5.1三维曲线绘图命令第57页/共118页2.ezplot3命令专门绘制符号函数的命令。ezplot3(x,y,z)ezplot3(x,y,z,[tmin,tmax])ezplot3(...,'animate')ezplot3(axes_handle,...)symstx=t*cos(t);y=t*sin(t);z=t;ezplot3(x,y,z,[0,20*pi])3.5.1三维曲线绘图命令第58页/共118页3.5.2三维网格命令mesh命令生成由x、y和z指定的网线面,而不是单根曲线。mesh(X,Y,Z)mesh(Z)mesh(...,C)mesh(...,'PropertyName',PropertyValue,...)mesh(axes_handles,...)第59页/共118页使用mesh函数来绘制三维网格图形:z=peaks(50);mesh(z);PEAKSAsamplefunctionoftwovariables.PEAKSisafunctionoftwovariables,obtainedbytranslatingandscalingGaussiandistributions,whichisusefulfordemonstratingMESH,SURF,PCOLOR,CONTOUR,etc.Thereareseveralvariantsofthecallingsequence:3.5.2三维网格命令第60页/共118页ExamplesProduceacombinationmeshandcontourplotofthepeakssurface:[X,Y]=meshgrid(-3:.125:3);Z=peaks(X,Y);meshc(X,Y,Z);axis([-33-33-105])3.5.2三维网格命令第61页/共118页Generatethecurtainplotforthepeaksfunction:[X,Y]=meshgrid(-3:.125:3);Z=peaks(X,Y);meshz(X,Y,Z)3.5.2三维网格命令第62页/共118页2.ezmesh命令专门用来绘制符号函数f(x,y)的网格图形。ezmesh(f)ezmesh(f,domain)ezmesh(x,y,z)ezmesh(x,y,z,[smin,smax,tmin,tmax])orezmesh(x,y,z,[min,max])3.5.2三维网格命令第63页/共118页fh=@(x,y)x.*exp(-x.^2-y.^2);ezmesh(fh,40)colormap([001])3.5.2三维网格命令第64页/共118页3.5.3三维曲面命令曲面的定义表达式为:z=f(x,y)其中,x,y是xy平面的坐标,z是得出的高度。基本的曲面绘制函数为:surf(x,y,z)和mesh(x,y,z)其中,x,y和z为曲面上点的坐标。函数surf画出的曲面由彩块组成,而mesh画出由边界给定的白色曲面。在surf函数中,块的颜色由z轴的值决定,而mesh中线的颜色也由z轴值决定。第65页/共118页1.surf命令使用格式与mesh命令完全一样可是使用surf函数来绘制三维表面图形:
[X,Y]=meshgrid([4:0.2:4]);Z=exp(-0.5*(X.^2-Y.^2));surf(X,Y,Z)3.5.3三维曲面命令第66页/共118页下面将在创建下式所确定的三维曲面过程中进一步介绍以上两个函数和其他几个函数的用法。为便于在其他例子中调用,创建函数名为SurExample的函数文件生成x,y和z的坐标值:function[x,y,z]=SurfExamplex1=linspace(-3,3,15);y1=linspace(-3,13,17);[x,y]=meshgrid(x1,y1);z=x.^4+3*x.^2-2*x+6-2*y.*x.^2+y.^2-2*y;end3.5.3三维曲面命令第67页/共118页clcclearallcloseallfigure[x,y,z]=SurfExample;surf(x,y,z)figure[x,y,z]=SurfExample;mesh(x,y,z)有何不同?3.5.3三维曲面命令第68页/共118页clcclearallcloseallfigure[x,y,z]=SurfExample;mesh(x,y,z)gridofffigure[x,y,z]=SurfExample;mesh(x,y,z)axisoffgridofffigure[x,y,z]=SurfExample;mesh(x,y,z)boxonaxisongridoff3.5.3三维曲面命令第69页/共118页clcclearallcloseallfigure[x,y,z]=SurfExample;meshz(x,y,z)figure[x,y,z]=SurfExample;waterfall(x,y,z)3.5.3三维曲面命令第70页/共118页2.ezsurf专门用来绘制符号函数f(x,y)的表面图形。ezsurf(f)ezsurf(f,domain)ezsurf(x,y,z)ezsurf(x,y,z,[smin,smax,tmin,tmax])orezsurf(x,y,z,[min,max])3.5.3三维曲面命令第71页/共118页[x,y]=meshgrid(linspace(-2*pi,2*pi,60));z=real(atan(x+i.*y));surf(x,y,z)3.5.3三维曲面命令第72页/共118页3.5.4柱面与球面专门绘制柱面与球面的命令cylinder与sphere。[X,Y,Z]=cylinder[X,Y,Z]=cylinder(r)[X,Y,Z]=cylinder(r,n)cylinder(axes_handle,...)cylinderaxissquareh=findobj('Type','surface');set(h,'CData',rand(size(get(h,'CData'))))第73页/共118页Generateacylinderdefinedbytheprofilefunction2+sin(t).t=0:pi/10:2*pi;[X,Y,Z]=cylinder(2+cos(t));surf(X,Y,Z)axissquare3.5.4柱面与球面第74页/共118页spheresphere(n)[X,Y,Z]=sphere(...)sphereaxisequal3.5.4柱面与球面第75页/共118页3.5.5三维图形等值线在军事、地理等学科中,经常会用到等值线。contour3命令contour命令contourf命令contourc命令clabel命令ezcontour命令ezsurfc命令第76页/共118页1.contour3命令生成一个定义在矩形栅格上曲面的三维等值线图contour3(Z)contour3(Z,n)contour3(Z,v)contour3(X,Y,Z)contour3(X,Y,Z,n)contour3(X,Y,Z,v)contour3(axes_handle,...)contour3(...,LineSpec)[C,h]=contour3(...)3.5.5三维图形等值线第77页/共118页Plotthethree-dimensionalcontourofafunctionandsuperimposeasurfaceplottoenhancevisualizationofthefunction.[X,Y]=meshgrid([-2:.25:2]);Z=X.*exp(-X.^2-Y.^2);contour3(X,Y,Z,30)surface(X,Y,Z,'EdgeColor',[.8.8.8],'FaceColor','none')gridoffview(-15,25)colormapcool3.5.5三维图形等值线第78页/共118页2.contour命令:绘制二维等值线contour(Z)contour(Z,n)contour(Z,v)contour(X,Y,Z)contour(X,Y,Z,n)contour(X,Y,Z,v)contour(...,LineSpec)[C,h]=contour(...)3.5.5三维图形等值线第79页/共118页[X,Y]=meshgrid(-2:.2:2,-2:.2:3);Z=X.*exp(-X.^2-Y.^2);[C,h]=contour(X,Y,Z);set(h,'ShowText','on','TextStep',get(h,'LevelStep')*2)colormapcool3.5.5三维图形等值线第80页/共118页3.contourf命令:用来填充二维等值线。Createafilledcontourplotofthepeaksfunction.[C,h]=contourf(peaks(20),10);colormapautumn3.5.5三维图形等值线第81页/共118页4.contourc命令该命令用于计算等值线矩阵C。C=contourc(Z)C=contourc(Z,n)C=contourc(Z,v)C=contourc(x,y,Z)C=contourc(x,y,Z,n)C=contourc(x,y,Z,v)3.5.5三维图形等值线第82页/共118页5.clabel命令用来在二维等值线图中添加高度标签。clabel(C,h)clabel(C,h,v)clabel(C,h,'manual')clabel(C)clabel(C,v)clabel(C,'manual')3.5.5三维图形等值线第83页/共118页Generate,draw,andlabelasimplecontourplot.[x,y]=meshgrid(-2:.2:2);z=x.^exp(-x.^2-y.^2);[C,h]=contour(x,y,z);clabel(C,h);3.5.5三维图形等值线第84页/共118页6.ezcontour命令专门用来绘制符号函数f(x,y)的等值线图。ezcontour(f)ezcontour(f,domain)ezcontour(...,n)ezcontour(axes_handle,...)h=ezcontour(...)3.5.5三维图形等值线第85页/共118页Thefollowingmathematicalexpressiondefinesafunctionoftwovariables,xandy.ezcontourrequiresafunctionhandleargumentthatexpressesthisfunctionusingMATLABsyntax.Thisexampleusesananonymousfunction,whichyoucandefineinthecommandwindowwithoutcreatinganM-Filef=@(x,y)3*(1-x).^2.*exp(-(x.^2)-(y+1).^2)...-10*(x/5-x.^3-y.^5).*exp(-x.^2-y.^2)...-1/3*exp(-(x+1).^2-y.^2);Forconvenience,thisfunctioniswrittenonthreelines.SeethepeaksPassthefunctionhandleftoezcontouralongwithadomainrangingfrom-3to3inbothxandyandspecifyacomputationalgridof49-by-49:ezcontour(f,[-3,3],49)3.5.5三维图形等值线第86页/共118页7.ezsurfc命令用于绘制函数f(x,y)的带等值线的三维表面图。ezsurfc(f)ezsurfc(f,domain)ezsurfc(x,y,z)ezsurfc(x,y,z,[smin,smax,tmin,tmax])orezsurfc(x,y,z,[min,max])ezsurfc(...,n)ezsurfc(...,'circ')ezsurfc(axes_handle,...)3.5.5三维图形等值线第87页/共118页Createasurface/contourplotoftheexpressionoverthedomain-5<x<5,-2*pi<y<2*pi,withacomputationalgridofsize35-by-35:ezsurfc('y/(1+x^2+y^2)',[-5,5,-2*pi,2*pi],35)Usethemousetorotatetheaxestobetterobservethecontourlines(thispictureusesaviewofazimuth=-65.5andelevation=26).3.5.5三维图形等值线第88页/共118页3.6三维图形修饰处理3.6.1视角处理View命令用来控制三维图形的观察点和视角。view(az,el)view([az,el])view([x,y,z])view(2)view(3)view(T)[az,el]=viewT=view第89页/共118页subplot(2,2,1),ezsurfc('y/(1+x^2+y^2)',[-5,5,-2*pi,2*pi],35)title('三维视图')subplot(2,2,2),ezsurfc('y/(1+x^2+y^2)',[-5,5,-2*pi,2*pi],35)view(90,0);title('侧视图')subplot(2,2,3),ezsurfc('y/(1+x^2+y^2)',[-5,5,-2*pi,2*pi],35)view(0,0);title('正视图')subplot(2,2,4),ezsurfc('y/(1+x^2+y^2)',[-5,5,-2*pi,2*pi],35)view(0,90);title('俯视图')3.6.1视角处理第90页/共118页3.6.2颜色处理1.色图明暗控制命令:brighten命令brighten(beta)brighten(h,beta)newmap=brighten(beta)newmap=brighten(cmap,beta)第91页/共118页h1=figure;ezsurfc('y/(1+x^2+y^2)',[-5,5,-2*pi,2*pi],35)title('当前色图')h2=figure;ezsurfc('y/(1+x^2+y^2)',[-5,5,-2*pi,2*pi],35)brighten(-0.85);title('减弱色图')h3=figure;ezsurfc('y/(1+x^2+y^2)',[-5,5,-2*pi,2*pi],35)brighten(0.85);title('增强色图')3.6.2颜色处理第92页/共118页3.6.2颜色处理第93页/共118页2.色轴刻度Caxis命令控制着对应色图的数据值的映射图。caxis([cmincmax])caxisautocaxismanualcaxis(caxis)v=caxiscaxis(axes_handle,...)3.6.2颜色处理第94页/共118页Create(X,Y,Z)dataforasphereandviewthedataasasurface.[X,Y,Z]=sphere;C=Z;surf(X,Y,Z,C)caxis([-10])caxis([-13])3.6.2颜色处理第95页/共118页3.颜色渲染设置Shading命令用来控制曲面与补块等的图形对象的颜色渲染,同时设置当前坐标轴中的所有曲面与补片图形对象的属性EdgeColor与FaceColor。shadingflatshadingfacetedshadinginterp3.6.2颜色处理第96页/共118页Compareaflat,faceted,andinterpolated-shadedsphere.subplot(3,1,1)sphere(16)axissquareshadingflattitle('FlatShading')subplot(3,1,2)sphere(16)axissquareshadingfacetedtitle('FacetedShading')subplot(3,1,3)sphere(16)axissquareshadinginterptitle('InterpolatedShading')3.6.2颜色处理第97页/共118页3.6.3光照处理1.带光照模式的三维曲面Surfl命令用来画一个带光照模式的三维曲面图surfl(Z)surfl(X,Y,Z)surfl(...,'light')surfl(...,s)surfl(X,Y,Z,s,k)h=surfl(...)第98页/共118页Viewpeaksusingcolormap-basedlighting.[x,y]=meshgrid(-3:1/8:3);z=peaks(x,y);surfl(x,y,z);shadinginterpcolormap(gray);axis([-33-33-88])3.6.3光照处理第99页/共118页Toplotalightedsurfacefromaviewdirectionotherthanthedefault,view([1010])gridonholdonsurfl(peaks)shadinginterpcolormapcopperholdoff3.6.3光照处理第100页/共118页2.光源位置及照明模式利用light命令与lightangle命令来确定光源位置。light('PropertyName',PropertyValue,...)handle=light(...)3.6.3光照处理第101页/共118页Lightthepeakssurfaceplotwithalightsourcelocatedatinfinityandorientedalongthedirectiondefinedbythevector[100],thatis,alongthex-axis.h=surf(peaks);set(h,'FaceLighting','phong','FaceColor','interp',...'AmbientStrength',0.5)light('Position',[100],'Style','infinite');3.6.3光照处理第102页/共118页3.7特殊图形的绘制条形图和面积图(BarandAreaGraphs)饼形图(PieCharts)离散型数据图方向和速度矢量图形第103页/共118页3.7.1条形图和面积图条形图和面积图用于绘制向量和矩阵数据,这两种图形可以用来比较不同组数据的在总体数据中所占
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 11《变废为宝有妙招》第二课时(教学设计)-部编版道德与法治四年级上册
- 七年级生物上册 第三单元 第二章 第三节 开花和结果教学设计 (新版)新人教版
- 18威尼斯的小艇教学设计-2023-2024学年五年级下册语文统编版
- 2024-2025学年高中政治下学期第2周教学设计
- 血管活性药物输注护理
- 2024秋四年级英语上册 Unit 4 My home课时6 Read and write-Story time教学设计 人教PEP
- 《 选唱 春天来了》(教案)-2023-2024学年人教版音乐二年级下册
- Unit 6 Section B project教学设计 2024-2025学年人教版(2024)七年级英语上册
- 一年级下美术教学设计-动物的花衣裳-岭南版
- 七年级英语下册 Unit 1 Can you play the guitar教学设计 (新版)人教新目标版
- 粮食储备公司工作计划
- 2024届楚雄彝族自治州大姚县数学五年级第二学期期末达标检测试题含解析
- 抗震支架供应及安装合同
- GB 31825-2024制浆造纸单位产品能源消耗限额
- Q-SY 05601-2019 油气管道投产前检查规范
- 《金属非金属地下矿山通信联络系统建设规范》
- 浅析船体分段焊接检验
- 医保基金监管培训课件
- 2024高考复习必背英语词汇3500单词
- 3课 《赤壁赋》公开课一等奖创新教学设计【中职专用】高一语文高教版2023-2024-基础模块下册
- 第5章 层次分析法课件
评论
0/150
提交评论