《matlab7课程课件第6章matlab绘图基础.ppt》由会员分享,可在线阅读,更多相关《matlab7课程课件第6章matlab绘图基础.ppt(178页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、MATLAB 7.0从入门到精通主要讲述内容第1章 MATLAB简介第2章 数值运算第3章 单元数组和结构第4章 字符串第5章 符号运算第6章 MATLAB绘图基础第7章 程序设计第8章 计算方法的MATLAB实现第9章 优化设计第10章 Simulink仿真初探第6章 MATLAB绘图基础6.1二维绘图plot(y)命令中y可以是向量、实数矩阵或复数向量。当y是向量时,绘制的图形以向量索引(1)为横坐标值(起点为1)、以向量元素的值为纵坐标值(横标为点的个数)。t=1:0.1:10;y=sin(t);plot(y)t=0:0.1:10;y=sin(t);plot(y)t=1:1:10;y=s
2、in(t);plot(y)t=0:1:10;y=sin(t);plot(y)t=1:0.1:10;y=sin(t);plot(t,y)t=1:1:10;y=sin(t);plot(t,y)用plot(y)命令绘制矩阵。则绘制矩阵列向量对其坐标索引(1)的图形。y=0 1 2;2 3 4;5 6 7;plot(y)y=3 2 6;4 3 9;5 8 7;plot(y)用plot(y)命令绘制复向量。则plot(y)相当于plot(real(y),imag(y)。x=1:100;y=2:2:200;z=x+y.*i;plot(z)x=1:100;y=1/10.*x.2;z=x+y*i;plot(z
3、)x=1 5 2 7 8 3;y=3 2 1 3 4 9;z=x+y*i;plot(z)x=6 3 7 4 5 2 1;y=2 7 3 1 3 2 4;z=x+y*i;plot(z)z=0.1+0.9i;n=0:0.01:10;plot(z.n)plot(x,y)中x,y均可为向量和矩阵。x,y均为n维向量时,绘制向量y对向量x的图形,即以x为横坐标,y为纵坐标。x为n维向量,y为mn或nm的矩阵时,该命令将在同一图内绘得m条不同颜色的连线。x为公共横标,y为纵标。x,y均为mn矩阵时,将绘得n条不同颜色的连线。用plot(x,y)绘制双向量。x=-2*pi:0.1:2*pi;y=sin(x)
4、+2;plot(x,y)用plot(x,y)绘制向量和矩阵。x=0:0.1:10;y=sin(x)+2;cos(x)+1;plot(x,y)用plot(x,y)绘制双矩阵。以x矩阵的第i列分量作为横坐标,矩阵y的第i列分量为纵标,绘得第i条连线。x=1 2 3;4 5 6;7 8 9;2 3 4;5 6 7;y=2 4 5;3 6 7;4 6 8;1 3 5;2 6 3;plot(x,y)用plot(x,y,s)绘制不同的线型、点标和颜色的图形,其中s为字符,控制线型。x=0:0.1:10;y1=sin(x);y2=cos(x);plot(x,y1,dm,x,y2,-b)例:在区间0,4pi上
5、,绘制函数下列函数的图形,两图采用不同形式的线型。x=0:0.01:4*pi;x=0:0.01:4*pi;y1=exp(-x/3).*sin(3*x);y1=exp(-x/3).*sin(3*x);y2=exp(-x/3);y2=exp(-x/3);y3=-exp(-x/3);y3=-exp(-x/3);plot(x,y1,x,y2,-.b,x,y3,-.r)plot(x,y1,x,y2,-.b,x,y3,-.r)grid on grid on6.2 三维绘图1、三维曲线图命令plot3 t=0:0.01:10*pi;x=sin(t);y=cos(t);z=t;plot3(x,y,z)用plo
6、t3命令绘制向量 t=0:0.01:2*pi;x=sin(t)sin(t)sin(t);y=cos(t)cos(t)cos(t);z=(sin(t).2+(cos(t).2(sin(t).2+(cos(t).2+1(sin(t).2+(cos(t).2+3;plot3(x,y,z)2、三维网格图命令mesh与三维曲面图命令surfmeshc与surfc功能在三维图的下面画等高线,meshz功能在三维图下画边界。waterfall命令用于绘制形似瀑布流水形状的网线图。x,y=meshgrid(-3:0.1:3);z=peaks(x,y);mesh(z)x,y=meshgrid(-3:0.1:3)
7、;z=peaks(x,y);meshc(z)x,y=meshgrid(-3:0.1:3);z=peaks(x,y);meshz(z)x=-4:0.1:4;y=x;m=ones(size(y)*x;n=y*ones(size(x);p=sqrt(m.2+n.2)+eps;z=sin(p)./p;mesh(z)x,y=meshgrid(-3:0.1:3);z=peaks(x,y);surf(z)x,y=meshgrid(-3:0.1:3);z=peaks(x,y);surfc(z)x,y=meshgrid(-3:0.1:3);z=peaks(x,y);waterfall(z)6.3特殊图形绘制(1
8、)bar命令绘制二维垂直条形图,用垂直条形显示向量或矩阵中的值。bar(y)为每一个y中元素画一个条状。bar(x,y)在指定的横坐标x上画出y,其中x为严格单增的向量。若y为矩阵,则bar把矩阵分解成几个行向量,在指定的横坐标处分别画出。bar(x,y,width)设置条形的相对宽度和控制在一组内条形的间距。默认值为0.8,如用户没指定x,则同一组内的条形有很小的间距,若设置为1,则同组的条形相互接触。bar(x,y,color)定义条形颜色。bar(x,y,style)用style定义条形类型,可以取值group或stack。其中group为默认的显示模式,表示若y为n*m阶的矩阵,则ba
9、r显示n组,每组有m个垂直条形的条形图。stack表示对矩阵y的每一个行向量显示在一个图形中,条形的高度为该行向量中的分量和。其中同一条图中的每个分量用不同的颜色显示出来,从而可以显示每个分量在向量中的分布。barh为绘制水平条状图。例:bartu y=4 1 2;9 4 2;9 8 6;4 0 3;9 1 2;bar(y,r)bar(y,g)(2)bar3命令绘制三维垂直条形图,用垂直条形显示向量或矩阵中的值。bar3(z)为每一个z中元素画一个条状,y为1:N。bar3(y,z)绘制三维条状图,y必须单调增加。bar3(y,z,width)设置条形的相对宽度和控制在一组内条形的间距。默认值
10、为0.8,如用户没指定x,则同一组内的条形有很小的间距,若设置为1,则同组的条形相互接触。bar3(y,z,style)用style定义颜色或条形类型,可以取值group或stack或detach。其中group为默认的显示模式,stack表示对矩阵y的每一个行向量显示在一个图形中,detach形状分开。bar3h为绘制水平条状图。例:bar3tu。y=4 1 2;9 4 2;9 8 6;4 0 3;9 1 2;bar3(y,r)bar3(y,g)(3)pie命令绘制二维饼图。pie(x)绘制向量x的饼图,向量x中的每一个元素就是饼图中的一个扇形。pie(x,explode)参数explode
11、和向量x是同维矩阵,如果其中有非零的元素,x矩阵中对应的位置元素在饼图中对应的扇形将向外移出,加以突出。pie(x,labels)参数labels用来定义对应扇形的标签。例:pietu(4)pie3命令绘制三维饼图。pie3(x)绘制向量x的三维饼图,向量x中的每一个元素就是饼图中的一个扇形。pie3(x,explode)参数explode和向量x是同维矩阵,如果其中有非零的元素,x矩阵中对应的位置元素在饼图中对应的扇形将向外移出,加以突出。pie3(x,labels)参数labels用来定义对应扇形的标签。例:pie3tu(5)contour命令绘制二维等高线图。contour(z)绘制表达
12、式z的二维等高线图。contour(z,n)参数n控制等高线的条数。contour(z,v)参数v是一个输入向量,等高线条数等于该向量的长度,而且等高线的数值等于对应向量的元素数值。clabel(c,h)旋转标签并将它们插到等值线中。该函数只插入那些在等值线图中合适的标签,它决定于等值线图的大小。clabel(c,h,manual)将等值线值标在鼠标选定的位置上,回车结束标注。例:contourtu、clabeltu(6)cylinder命令绘制圆柱图形。x,y,z=cylinder返回一个半径和高度均为1的圆柱体的x,y,z轴的坐标值,圆柱体的圆周有20个距离相同的点。x,y,z=cylin
13、der(r)返回一个半径为r,高度为1的圆柱体的x,y,z轴的坐标值,圆柱体的圆周有20个距离相同的点。x,y,z=cylinder(r,n)返回一个半径为r,高度为1的圆柱体的x,y,z轴的坐标值,圆柱体的圆周有n个距离相同的点。例:cylindertu(7)sphere命令绘制球体。sphere绘制三维直角坐标系中单位球体,该球体由20*20个面组成。sphere(n)绘制三维直角坐标系中单位球体,该球体由n*n个面组成。例:spheretu6.4 图形格式控制1、grid on(grid off)与hold on(hold off)grid控制网格的打开与关闭,hold on与hold
14、off控制多图是否画在同一个图上,如果是hold off则最后一个图替换前面所有的图。x=0:0.1:2*pi;y=sin(x);plot(x,y)grid on x=0:0.1:2*pi;y=sin(x);plot(x,y)grid on grid off(默认状态)x=0:0.1:2*pi;y1=sin(x);y2=cos(x);plot(x,y1)plot(x,y2)x=0:0.1:2*pi;y1=sin(x);y2=cos(x);plot(x,y1)hold on plot(x,y2)x=-1:0.01:1;y1=3+exp(-x).*sin(6*x);y2=4+exp(-x).*co
15、s(6*x);plot(0.1+0.9i).(0:0.01:10)hold on plot(y1,y2)grid on gtext(y2相对y1)gtext(z虚部相对实部)x=0:0.1:2*pi;y1=sin(x);y2=cos(x);plot(x,y1)hold on plot(x,y2)grid on2、坐标轴标注和图形标题xlabel(string,property name,.)xlabel(fname)ylabel(string,property name,.)ylabel(fname)title(string,property name,.)title(fname)其中stri
16、ng是标注所用的说明语句,fname是一个函数名,系统要求该函数必须返回一个字符串作为标注语句。x=0:0.01:2*pi;y=sin(x);plot(x,y)xlabel(x(0-2pi)ylabel(y=sin(x)title(正弦函数)用文本标注图形text(x,y,string,propertyname,.)gtext(string1,string2,.)text要指清标注位置,gtext命令后会在图上出现个十字符号,可以把标注标在鼠标任意能达到的地方。图例标注legend(string1,string2,.)x=0:0.1:2*pi;y=sin(x);plot(x,y)text(pi
17、/2,1,x=pi/2,y=1)text(pi,0,x=pi,y=0)x=0:0.1:2*pi;y=sin(x);plot(x,y)text(pi/2,1,x=pi/2,y=1)text(pi,0,x=pi,y=0)hold on plot(pi/2,1,*)hold on plot(pi,0,o)x=0:0.1:2*pi;y=sin(x);plot(x,y)gtext(x=pi/2,y=1)x=-pi:0.01:pi;y=sin(x);y1=cos(x);plot(x,y,-ro,x,y1,-.b)legend(sin,cos,2)后面的数字表示图例在图上的位置。详细见教材。1,2,3,4表
18、示标注在四个角上,先从右上角开始,逆时针排列。0是自动定位,使得图标与图形重叠最少。不加默认为1。x=-pi:0.01:pi;y=sin(x);y1=cos(x);plot(x,y,-ro,x,y1,-.b)legend(sin,cos,1)x=-pi:0.01:pi;y=sin(x);y1=cos(x);plot(x,y,-ro,x,y1,-.b)legend(sin,cos,3)x=-pi:0.01:pi;y=sin(x);y1=cos(x);plot(x,y,-ro,x,y1,-.b)legend(sin,cos,4)x=-pi:0.01:pi;y=sin(x);y1=cos(x);pl
19、ot(x,y,-ro,x,y1,-.b)legend(sin,cos,0)x=-pi:0.01:pi;y=sin(x);y1=cos(x);plot(x,y,-ro,x,y1,-.b)legend(sin,cos)3、坐标轴控制axis(xmin xmax ymin ymax)axis 控制字符串,字符串为auto时是自动模式,使得坐标轴范围能容纳下所有的图形;字符串为manual时以当前的坐标范围限定图形的绘制,此后使用hold on命令再次绘图时保持坐标轴范围不变;字符串为tight时将坐标范围限制在指定的数据范围内。用于控制坐标轴的范围。box on和box off用来控制图形四周能否显
20、示坐标。axis square坐标轴为方形。axis equal横纵坐标刻度标准相同。x=-pi:0.01:pi;y1=sin(x);y2=2*cos(x);plot(x,y1)axis manual hold on plot(x,y2,r)x=-pi:0.01:pi;y=sin(x);plot(x,y)grid on x=-pi:0.01:pi;y=sin(x);plot(x,y)grid on box off t=0:0.01:2*pi;x=sin(t);y=cos(t);plot(x,y)t=0:0.01:2*pi;x=sin(t);y=cos(t);plot(x,y)axis squa
21、re t=0:0.01:2*pi;x=sin(t);y=cos(t);plot(x,y)axis equal t=0:0.01:2*pi;y=cos(t);plot(t,y)t=0:0.01:2*pi;y=cos(t);plot(t,y)axis square t=0:0.01:2*pi;y=cos(t);plot(t,y)axis equal4、子图subplot(m,n,i)plot(xi,yi)在m*n个窗口的第i个窗口绘制yi=f(xi)的图形。x=0:0.01:pi/2;y1=sin(x);y2=cos(x);y3=tan(x);y4=cot(x);subplot(2,2,1);pl
22、ot(x,y1);title(y=sin(x)subplot(2,2,2);plot(x,y2);title(y=cos(x)subplot(2,2,3);plot(x,y3);title(y=tan(x)axis(0 pi/2 0 10)subplot(2,2,4);plot(x,y4);title(y=cot(x)axis(0 pi/2 0 10)5、图形数据取点x,y=ginput(n)可通过鼠标选取n个点,它们的坐标值保存在x,y中,可通过回车结束取点。x,y=ginput取点数目不受限制,它们的坐标保存在x,y中,通过回车结束取点。x=0:0.01:2*pi;x=0:0.01:2*p
23、i;y=sin(x);y=sin(x);plot(x,y)plot(x,y)m,n=ginput(2)m,n=ginput(2)m=m=2.3629 2.3629 3.8468 3.8468n=n=0.7105 0.7105 -0.6520 -0.6520 hold on hold on plot(m,n,or)plot(m,n,or)text(m(1),n(1),m(1)=,num2str(m(1),n(1)=,num2str(n(1)text(m(1),n(1),m(1)=,num2str(m(1),n(1)=,num2str(n(1)text(m(2),n(2),m(2)=,num2st
24、r(m(2),n(2)=,num2str(n(2)text(m(2),n(2),m(2)=,num2str(m(2),n(2)=,num2str(n(2)x=-pi:0.01:pi;y=sin(x)+sin(2*x)-cos(3*x);h=plot(x,y);x=get(h,XData);y=get(h,YData);imin=find(min(y)=y);imax=find(max(y)=y);hold on text(x(imin),y(imin),minimum=,num2str(y(imin);hold ontext(x(imax),y(imax),maximum=,num2str(y
25、(imax);6、多轴曲线图多轴曲线图采用plotyy命令。x=0:0.01:20;y1=100*exp(-0.05*x).*sin(x);y2=exp(-0.5*x).*sin(10*x);ax,h1,h2=plotyy(x,y1,x,y2);ylabel(left yaxis)axes(ax(2)ylabel(right yaxis)set(h1,linestyle,-)6.5三维图形的编辑(1)设置背景颜色在MATLAB中,设置图形背景颜色的命令是colordef。colordef white将图形背景设为白色;colordef black将图形背景设为黑色;colordef none将
26、图形背景和图形窗口的颜色设为默认颜色;colordef(fig.color_option)将图形句柄fig图形的背景由color_option指定设置。例:colordeftu(2)在MATLAB中,caxis命令的主要功能是设置数值轴的颜色。caxis(cmin cmax)在区间范围内对应的颜色给图形着色。例:caxistu(3)在MATLAB中,colorbar命令的主要功能是显示指定颜色刻度的颜色标尺。colorbar更新最近生成的颜色标尺,如果当前坐标轴系统中没有任何颜色标尺,则在图形的右侧显示一个垂直的颜色标尺;colorbar(vert)添加一个垂直的颜色标尺到当前的坐标轴系统中;
27、colorbar(horiz)添加一个水平的颜色标尺到当前的坐标轴系统中。例:colorbartu(4)在MATLAB中,shading命令设置图形颜色的着色方式。shading flat使用平滑方式着色。网格图的某条线段,或者曲面图中的某整个贴片都是一种颜色,该颜色取自线段的两端,或者该贴片四顶点中下标最小那点的颜色;shading interp使用插值方式着色。使用网格图线段,或者曲面图贴片上各点的颜色由该线段两端,或者该贴片四顶点的颜色线性插值而得;shading faceted以平面为单位进行着色,是系统默认的着色方式。例:shadingtu(5)在MATLAB中,light命令是为图
28、形建立光源。light(name,value,)其中,name是一些光源的颜色、位置和类型等的变量名。例:lighttu(6)MATLAB还提供设置曲面光源模式的lighting命令,该命令可以显示不同的照明模式,但是必须在light命令执行后才能起作用。lihgting flat平面模式,系统默认,入射光均匀洒落在图形对象的每个面上;lihgting gouraud点模式,先对顶点颜色进行插补,再对顶点勾画的面色进行插补;lihgting phong对顶点处法线插值,再计算像素的反光,效果好费时间;lihgting none关闭所有光源。例:lightingtu(7)MATLAB中,mate
29、rial命令可以控制光照效果的材质属性,也就是设置图形表面对光照反射的模式。material shiny使对象比较明亮,镜反射份额较大,反射光的颜色取决于光源的颜色;material dull使对象比较暗淡,漫反射份额较大,反射光的颜色取决于光源的颜色;material metal使对象有金属光泽,反射光的颜色取决于光源的颜色和图形表面的颜色,这是MATLAB内部的默认设置;material default返回到MATLAB中的默认设置。例:materialtumaterial(ka kd ks n sc)该命令可以使用专门的个性化设置。ka设置无方向性、均匀的背景光的强度;kd设置无方向性漫
30、反射的强度;ks设置有硬反射光的强度;n设置控制镜面亮点大小的镜面指数;sc设置镜面颜色的反射系数。(8)MATLAB中采用hidden命令控制透视图的设置。hidden off透视被压缩的图形;hidden on消隐被压缩的图形。例:hiddentu6.6使用绘图工具(plot tool)编辑图形MATLAB7.0在图形窗口中增加了绘图工具(Plot Tool)组件,该组件由图形窗口面板(Figure Palatte)、绘图浏览器(Plot Browse)和属性编辑面板(Property Editor)组成。修改坐标轴的刻度间隔。在绘图浏览器(plot browser)中选取”Axes”对象
31、,属性编辑器面板(property editor)中就会显示图形中所有坐标轴对象,选择想要修改的坐标轴进行修改坐标轴间隔。同时可以对坐标轴进行标注,并且可以设置字体大小和颜色。对坐标轴范围以及形式进行设定。添加新的变量。在命令窗口输入下面命令后会在变量窗口添加变量值。绘出新加数据的图形,并且可以控制线型及颜色。也可以添加子图并在子图中添加数据曲线。x0=0:0.01:15*pi;y=5*cos(2*x0)+10*sin(x0);x=-2*pi:0.01:2*pi;y1=sin(x);y2=sin(2*x)+cos(x);plot(x,y1)x=-2*pi:0.01:2*pi;y1=sin(x);y2=sin(2*x)+cos(x);y3=2*cos(2*x);y4=sin(2*x)+2*cos(x);plot(x,y1)6.使用绘图窗口进行数据分析图形工具本身就是描述数据的一种形式,因此图形工具在数据分析中占有非常重要的作用。基于这样的原因,MATLAB在图形窗口增加进行数据的菜单选项。点击菜单tool下的data statistics命令调出数据分析工具。总结:绘制图表的基础步骤第一步:准备图表的数据。第二步:设置显示图表的位置。主要针对子图情况。第三步:绘图,并设置相应的参数。第四步:设置坐标轴属性。第五步:添加图形注释。