MATLAB绘图功能大全_第1页
MATLAB绘图功能大全_第2页
MATLAB绘图功能大全_第3页
MATLAB绘图功能大全_第4页
MATLAB绘图功能大全_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MATLAB绘图功能大全-CAL-FENGHAI.-(YICAI)-Company One 1Matlab绘图强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的 绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基 木参数就能得到所需图形,这类函数称为高层绘图函数。此外, Matlab还提供了直接对图形句柄进行操作的低层绘图操作。这类操 作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独 立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形 元素进行操作,而不影响其他部分。本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控 制函数的使用方法,在此基础上,

2、再介绍可以操作和控制各种图形 对象的低层绘图操作。一、二维绘图二维图形是将平而坐标上的数据点连接起来的平面图形。可以 采用不同的坐标系,如直角坐标、对数坐标、极坐标等。二维图形 的绘制是其他绘图操作的基础。(一)绘制二维曲线的基木函数在Matlab中,最基本而且应用最为广泛的绘图函数为plot,利 用它可以在二维平面上绘制出不同的曲线。1. plot函数的基木用法plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x 坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维 曲线。plot函数的应用格式plot(x,y)其中x,y为长度相同的向量,存储x坐标和y坐标。例52在0,2pi

3、区间,绘制曲线程序如下:在命令窗口中输入以下命令? x=0:pi/100:2*pi; y=2*exp*x).*sin(2*pi*x); plot(x,y)程序执行后,打开一个图形窗口,在其中绘制出如下曲线注意:指数函数和正弦函数之间要用点乘运算,因为二者是向 量。例52绘制曲线这是以参数形式给出的曲线方程,只要给定参数向量,再分别 求出x,y向量即可输岀曲线:t=-pi:pi/100:pi; x=t.*cos(3*t); y=t.*sin(t).*sin(t); plot(x,y)程序执行后,打开一个图形窗口,在其中绘制出如下曲线以上提到plot函数的自变量x,y为长度相同的向量,这是最常 见

4、、最基木的用法。实际应用中还有一些变化。2. 含多个输入参数的plot函数plot函数可以包含若干组向量对,每一组可以绘制岀一条曲线。含多个输入参数的plot函数调用格式为:plot(xl, yl, x2, y2,,xn, yn)如下列命令可以在同一坐标中画出3条曲线。 x=linspace(0,2*pi,100); plot(x,sin(x),x,2*sin(x),x,3*sin(x)当输入参数有矩阵形式时,配对的x,y按对应的列元素为横坐标和纵坐标绘制曲线,曲线条数等于矩阵的列数。 x=linspace(0,2*pi,100); yl=sin(x); y2=2*sin(x); y3=3*s

5、in(x); x=x;x;x; y=yl;y2;y3; plot(x,y,x,cos(x)x,y都是含有三列的矩阵,它们组成输入参数对,绘制三条曲 线;X和cos(x)又组成一对,绘制一条余弦曲线。利用plot函数可以直接将矩阵的数据绘制在图形窗体中,此时plot函数将矩阵的每一列数据作为一条曲线绘制在窗体中。如 A=pascal(5)A 二11111123451 3 6 10 1514 10 20 351 5 15 35 70 plot(A)3. 含选项的plot函数Matlab提供了一些绘图选项,用于确定所绘曲线的线型、颜色和数据点标记符号。这些选项如表所示:线型颜色标记符号实线b蓝色.点

6、S方块:虚线g绿色0圆圈d菱形点划线r红色X叉 号V朝下三角符号-双划线c青色+加号/朝上二角符号m品 红水星号v朝左三角符号y黄色朝右三角符号k黑色P五角星w 口 色h六角星例用不同的线型和颜色在同一坐标内绘制曲线及其包络线。 x=(0:pi/100:2*pi)1;yl=2*exp*x)*l,-l; y2=2*exp*x).*sin(2*pi*x); xl=(0:12)/2; y3=2*exp*xl).*sin(2*pi*xl); plot(x/yl;k:,/x,y2;b-,/xl/y3/,rp,);在该plot函数中包含了 3组绘图参数,第一组用黑色虚线画出 两条包络线,第二组用蓝色双划线

7、画出曲线y,第三组用红色五角 星离散标出数据点。4. 双纵坐标函数plotyy在Metbb中,如果需要绘制出具有不同纵坐标标度的两个图 形,可以使用plotyy函数,它能把具有不同量纲,不同数量级的两 个函数绘制在同一个坐标中,有利于图形数据的对比分析。使用格 式为:plotyy(xl,yl,x2zy2)o对应一条曲线,x2,y2对应另一条曲线。横坐标的标度相 同,纵坐标有两个,左边的对应数据对,右边的对应x2,y2o(二)绘制图形的辅助操作绘制完图形以后,可能还需要对图形进行一些辅助操作,以使 图形意义更加明确,可读性更强。1 图形标注在绘制图形时,可以对图形加上一些说明,如图形的名称、坐

8、标轴说明以及图形某一部分的含义等,这些操作称为添加图形标 注。有关图形标注函数的调用格式为:title (图形名称)(都放在单引号内)xlabel ( x 轴说明)ylabel ( y 轴说明)text (x, y,图形说明)legend (图例 1,图例 2,)P190其中,title, xlabel和ybbel函数分别用于说明图形和坐标轴的 名称。text函数是在坐标点(x, y)处添加图形说明。(P88或用 gtext命令)。legend函数用于绘制曲线所用线型、颜色或数据点标 记图例,图例放置在空口处,用户还可以通过鼠标移动图例,将其 放到所希望的位置。除legend函数外,其他函数同

9、样适用于三维图 形,在三维中z坐标轴说明用zlabel函数。上述函数中的说明文字,除了使用标准的ASCII字符外,还可以 使用LaTex (一种流行的数学排版软件)格式的控制字符,这样就可 以在图形上添加希腊字符,数学符号和公式等内容。在Matlab支持 的LaTex字符串中,用/bf ?/it,/rm控制字符分别定义黑体、斜体和 正体字符,受LeTex字符串控制部分要加大扌舌号扌舌起来。例如, text, , the usful /bf MATLAB?,将使 MATLAB 一词黑体显示。 一些常用的LaTex字符见表,各个字符可以单独使用也可以和其他 字符及命令配合使用。如text, sin

10、(/omegat+/beta)将得到标 注效果。标 识符号标识符号标识符号/alpha/epsilon/infty/beta/eta/int/gamma/Gamma/partial/deIta/DeIta/leftarrow/theta/Th eta/rightsrrow/lambda/Lambda/downarrow/xi/Xi/uparrow/Pi/Pi/div/omega/omega/times/sigma/Sigma/pm/Phi/Ph1/leq/ps1/Psi/geq/rh0/tau/neq/mu/zeta/fora II/nu/chi/exists2.坐标控制在绘制图形时,Matl

11、ab可以自动根据要绘制曲线数据的范围选 择合适的坐标刻度,使得曲线能够尽可能清晰的显示出来。所以, 一般情况下用户不必选择坐标轴的刻度范围。但是,如果用户对坐 标不满意,可以利用axis函数对其重新设定。其调用格式为axis (xmin xmax ymin ymax zmin zmax)如果只给出前四个参数,则按照给出的X、y轴的最小值和最大 值选择坐标系范围,绘制出合适的二维曲线。如果给出了全部参 数,则绘制出三维图形。axis函数的功能丰富,其常用的用法有:axis equal :纵横坐标轴采用等长刻度axis square:产生正方形坐标系(默认为矩形)axis auto:使用默认设置a

12、xis off:取消坐标轴axis on :显示坐标轴还有:给坐标加网格线可以用grid命令来控制,grid on/off命 令控制画还是不画网格线,不带参数的grid命令在两种之间进行切 换。给坐标加边框用box命令控制。和grid 一样用法例:绘制分段函数,并添加图形标注。(略)3.图形保持一般情况下,每执行一次绘图命令,就刷新一次当前图形窗 口,图形窗口原有图形将不复存在,如果希望在已经存在的图形上 再继续添加新的图形,可以使用图形保持命令holdo hold on/off命 令是保持原有图形还是刷新原有图形,不带参数的hold命令在两者 之间进行切换。例:(略)4 图形窗口分割在实际应

13、用中,经常需要在一个图形窗口中绘制若干个独立的 图形,这就需要对图形窗口进行分割。分割后的图形窗口由若干个 绘图区组成,每一个绘图区可以建立独立的坐标系并绘制图形。同 一图形窗口下的不同图形称为子图。Matlab提供了 subplot函数用 来将当前窗口分割成若干个绘图区,每个区域代表一个独立的子 图,也是一个独立的坐标系,可以通过subplot函数激活某一区,该 区为活动区,所发出的绘图命令都是作用于该活动区域。调用格 式:subplot (m, n, p)该函数把当前窗口分成mXn个绘图区,m行,每行n个绘图 区,区号按行优先编号。其中第p个区为当前活动区。每一个绘图 区允许以不同的坐标系

14、单独绘制图形。例:(略)三.绘制二维图形的其他函数1. 其他形式的线性直角坐标图在线性直角坐标中,其他形式的图形有条形图、阶梯图、杆图和填充图等,所采用的函数分别为:bar (x, y,选项)选项在单引号中stairs (x, y,选项)stem (x, y,选项)fill (xl, yl,选项 2, x2, y2,选项 2,)前三个函数和plot的用法相似,只是没有多输入变量形式。fill 函数按向量元素下标渐增次序依次用直线段连接x, y对应元素定义 的数据点。例5-&分别以条形图、填充图、阶梯图和杆图形式绘制曲线x=0:7;y 二 2*exp*x);subplot(2,2,l);bar(

15、x,y;g);title(bar(XMg);3xis(0, 7,0,2);subplot(2/2/2);fill(x,y;r,);title(,fill(x/y/r,),);axis(Oz 7, 0,2);subplot(2,2,3);stairs(x,y,b,);title(stairs(x,y,b),);axis(O/ 7, 0,2);subplot(2,2,4);stem(x/y/k,);title(,stem(x,y/k),);axis(O, 7, 0,2);2. 极坐标图polar函数用来绘制极坐标图,调用格式为:polar (theta, rho,选项)其中,theta为极坐标极角

16、,rho为极径,选项的内容和plot函 数相似。例5-9:绘制的极坐标图theta=0:2*pi;rho=sin(3*theta).*cos(5*theta);polarfthetajho/r);3. 对数坐标图在实际应用中,经常用到对数坐标,Matlab提供了绘制对数和 半对数坐标曲线的函数,其调用格式为:semilogx (xl, yl,选项 1, x2, y2,选项 2,)semilogy (xl, yl,选项 1, x2, y2,选项 2,)loglog (xl, yl,选项 1, x2, y2,选项 2,)这些函数中选项的定义和plot函数完全一样,所不同的是坐标 轴的选取。semi

17、logx函数使用半对数坐标,x轴为常用对数刻度,而 y轴仍保持线性刻度。semilogy恰好和semilogx相反。loglog函数使 用全对数坐标,x、y轴均采用对数刻度。例:略4.对函数自适应采样的绘图函数5 其他形式的二维图形二. 三维绘图(一)绘制三维曲线的基本函数最基木的三维图形函数为plot3,它将二维绘图函数plot的有关 功能扩展到三维空间,可以用来绘制三维曲线。其调用格式为:plot3 (xl, yl, zl,选项 1, x2, y2, z2,选项 2,)其中每一组x, y, z组成一组曲线的坐标参数,选项的定义和 plot的选项一样。当x, y, z是同维向量时,则x, y

18、, z对应元素构 成一条三维曲线。当x, y, z是同维矩阵时,则以x, y, z对应列元 素绘制三维曲线,曲线条数等于矩阵的列数。例513绘制空间曲线该曲线对应的参数方程为t=0:pi/50:2*pi;x=8*cos(t);y=4*sqrt(2)*sin(t);z=-4*sqrt(2)*sin(t);plot3(x,y,乙,p);titlefLine in 3-D Space);text(0,0,0,origin);xlabeHXJjylabeHYJjzlabelCZJjgrid;(二)三维曲面1.平面网格坐标矩阵的生成当绘制z=f(x,y)所代表的三维曲而图时,先要在xy平面选定一矩 形区

19、域,假定矩形区域为D = a,bXc,d,然后将a,b在x方向分成 m份,将c,d在y方向分成n份,由各划分点做平行轴的直线,把 区域D分成mXn个小矩形。生成代表每一个小矩形顶点坐标的平 而网格坐标矩阵,最后利用有关函数绘图。产生平而区域内的网格坐标矩阵有两种方法:利用矩阵运算生成。x=a:dx:b;y二(c:dy:d),;X 二 ones(size(y)*x;Y 二 y*o nes(size(x);经过上述语句执行后,矩阵X的每一行都是向量X,行数等于 向量y的元素个数,矩阵Y的每一列都是向量y,列数等于向量x的 元素个数。利用meshgrid函数生成;x=a:dx:b;y 二 c:dy:

20、d;X,Y=meshgrid(x/y);语句执行后,所得到的网格坐标矩阵和上法,相同,当x二y时,可以写成meshgrid(x)2. 绘制三维曲面的函数Matlab提供了 mesh函数和surf函数来绘制三维曲面图。mesh 函数用来绘制三维网格图,而surf用来绘制三维曲面图,各线条之 间的补而用颜色填充。其调用格式为:mesh (x, y, z, c)surf (x, y, z, c)一般情况下,x, y, z是维数相同的矩阵,x, y是网格坐标矩 阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范 围。c省略时,Metlab认为c二z,也即颜色的设定是正比于图形的高 度的。这样就

21、可以得到层次分明的三维图形。当x, y省略时,把z 矩阵的列下标当作x轴的坐标,把z矩阵的行下标当作y轴的坐 标,然后绘制三维图形。当x, y是向量时,要求x的长度必须等于 z矩阵的列,y的长度必须等于必须等于z的行,x, y向量元素的组合构成网格点的x, y坐标,z坐标则取自z矩阵,然后绘制三维曲线。例515用三维曲而图表现函数:为了便于分析三维曲面的各种特征,下面画出3种不同形式的 曲面。%program 1x=0:2*pi;(x/y=meshgrid(x);z 二 si n(y)*cos(x);mesh(x,y,z);xlabelCx-axisylabelCy-axiszlabelCz-

22、axis);titleCmesh); pause;%program 2x=0:2*pi;x/y=meshgrid(x);z 二 si n(y)* cos(x);surf(x,y,z);xlabelCx-axisylabelCy-axiszlabelCz-axis);titleCsurf); pause;%program 3x=0:2*pi;x/y=meshgrid(x);z 二 si n(y).*cos(x);plot3(x,y,z);xlabelCx-axisylabelCy-axiszlabelCz-axis);title(plot3-l);grid;程序执行结果分别如上图所示。从图中可以

23、发现,网格图(mesh)中线条有颜色,线条间补面无颜色。曲面图(surf)的线 条都是黑色的,线条间补而有颜色。进一步观察,曲面图补面颜色 和网格图线条颜色都是沿z轴变化的。用plot3绘制的三维曲而实际 上由三维曲线组合而成。可以分析plot (x , y , z)所绘制的 曲而的特征。例516绘制两个直径相等的圆管相交的图形。m 二 30;z=*(0:m)/m;r=one s(size(z);theta=(0:m)/m*2*pi;xl=r*cos(theta);yl=r*sin(theta);%生成第一个圆管的坐标矩阵zl=z*ones(l,m+l);x=(-m:2:m)/m;x2=x*o

24、nes(l,m+l);y2=r,*cos(theta);%生成第一个圆管的坐标矩阵z2=r*sin(theta);surffxylzl); %绘制竖立的圆管axis equal ,axis offhold on surf(x2,y2,z2); %绘制平放的圆管axis equal ,axis offtitle (*两个等直径圆管的交线J;hold off例517分析由函数构成的曲面形状与平面z二a的交线。此外,还有两个和mesh函数相似的函数,即带等高线的三维 网格曲而函数meshc和带底座的三维网格曲而函数meshz,其用法 和mesh类似。不同的是,meshc还在xy平面上绘制曲面在z轴方

25、 向的等高线,meshz还在xy平面上绘制曲面的底座。surf函数也有两个类似的函数,即具有等高线的曲面函数surfc 和具有光照效果的曲而函数surf Io例518在xy平面内选择卜8, 8 X 一& 8绘制函数,x,y=meshgrid(-8:8);z=sin(sqrt(x.A2+y.A2)./sqrt(x.A2+y.A2+eps);subplot(2,2,l);meshc(x,y,z);title(meshc);subplot(2,2,2);meshz(x,y,z);title(meshz);subplot( 2,2,3);surfc(x,y,z);title(surfc);subplo

26、t(2,2,4);surfl(x,y,z);title(surfr);3. 标准三维曲面Matlab提供了一些函数用于绘制标准三维曲面,这些函数可以 产生相应的绘图数据,常用于三维图形的演示。如,sphere函数和 cylinder函数分别用于绘制三维球面和柱而。sphere函数的调用格式 为:x,y,z二 sphere(n);该函数将产生(n+1) X (n+2矩阵x, y, z。采用这三个矩阵 可以绘制出圆心位于原点、半径为2的单位球体。若在调用该函数 时不带输出参数,则直接绘制所需球而。n决定了球面的圆滑程 度,其默认值为20。若n值取的比较小,则绘制出多面体的表面 图。cylinder

27、函数的调用格式为:x, y, z = cylinder (R, n)其中R是一个向量,存放柱而各个等间隔高度上的半径,n表 示在圆柱圆周上有n个间隔点,默认有20个间隔点。女口: cylinder(3)生成一个圆柱,cylinder (10, 1)生成一个圆锥。而 t=0:pi/100:4*pi; R=sin(t); cylinder(R,30);生成一个正弦圆柱面。另外Matlab还提供了一个peaks函数,称为多峰函数,常用于 三维曲而的演示。该函数可以用来生成绘图数据矩阵,矩阵元素由 函数:在矩形区域一3 3 X -3 3的等分网格点上的函数值确定。如:z=peaks (30)将生成一个

28、30X30矩阵,例519绘制标准三维曲而图形t=0:pi/20:2*pi;x/y,z=cylinder(2+sin(t)/30);subplotfl,3,1);surf(x,y,z);subplot(l,3,2);x,y,z二 sphere;surf(x,y,z);subplotfl,3,3);x,y,z二 peeks(30);meshz(x,y,z);?3.其他三维图形。在介绍二维图形时,曾经提到条形图、杆图、饼图和填充图等 特殊图形,它们还可以以三维形式出现,其函数分别为bar3, stem3, pie3 和 fill3obar3绘制三维条形图,常用格式为:bar3 (y);bar3 (x

29、, y)在第一种格式中,y的每个元素对应于一个条形。第二种格式 在x指定的位置上绘制y中元素的条形图。stems函数绘制离散序列数据的三维杆图,常用格式为:stem3 (z)stem3 (x, y, z)第一种格式将数据序列z表示为从xy平而向上延伸的杆图,x 和y自动生成。第二种格式在x和y指定的位置上绘制数据序列z 的杆图,x, y, z的维数要相同。pie3函数绘制三维饼图,常用格式为:pie3 (x)x为向量,用x中的数据绘制一个三维饼图。fil!3函数可在三维空间内绘制出填充过的多边形,常用格式 为:fill3 (x, y, z, c)用x, y, z做多边形的顶点,而c指定了填充的

30、颜色。例520绘制三维图形。1绘制魔方阵的三维条形图2以三维杆图形式绘制曲线y=2sinx?3 己知 x =2347,1827,2043,3025,绘制三维饼图4用随机的顶点坐标值画出5个黄色三角形subplotf 乙乙 1);bar3(magic(4);subplot(2,2,2);y=2*sin(0:pi/10:2*pi);stem3(y);subplot(2,2,3);pie3(2347,1827,2043,3025);subplot(2,2,4);fill3(rand(3/5),rand(3,5),rand(3,5)/y,);除了上而讨论的三维图形外,常用的图形还有瀑布图和三维曲 而的

31、等高线图。绘制瀑布图用waterfall函数,用法和meshz函数相 似,只是它的网格线在x轴方向出现,具有瀑布效果。等高线图分 二维和三维两种形式,分别使用函数contour和contour3绘制。例521绘制多峰函数的瀑布图和等高线图。subplotfl,2,1);XzY,Z=peaks(30);waterfall(X,Y,Z);xlabel(,XX,);ylabel(,YY,);zbbel(,ZZ,);subplotfl,2,2);contour3(X/Y,Z,12;k);%其中12代表高度的等级数xlabel(,XX);ylabel(,YY,);zlabel(,ZZ,);三. 三维图形的精细处理(一) 视点处理在日常生活中,从不同的角度观察物体,所看到的物体形状是 不一样的。同样,从不同视点绘制的三维图形的形状也是不一样 的。视点位置可由方位角和仰角表示。方位角Matlab提供了设置视点的函数view,其调用格式为:view (az, el)其中3Z为方位角,el为仰角,它们均以度为单位。系统默认的 视点定义为方位角为度,仰角30度。例

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论