《第3章MATLAB绘图.ppt》由会员分享,可在线阅读,更多相关《第3章MATLAB绘图.ppt(50页珍藏版)》请在优知文库上搜索。
1、第3章 MATLAB绘图 主要内容:主要内容:3.1 二维数据曲线图二维数据曲线图 3.2 其他二维图形其他二维图形 3.3 图形用户界面设计图形用户界面设计 3.4 案例分析案例分析 视觉是人们感受世界、认识自然的最重要途径。图形可以帮助人们直观感受科学计算结果的全局意义和许多内在本质。除了可靠的科学计算功能之外,MATLAB还具有非常强大的图形表达功能,既可以绘制二维图形,又可以绘制三维图形,还可以通过标注、视点、颜色、光照等操作对图形进行修饰。MATLAB有两类绘图命令,一类是直接对图形句柄进行操作的低层绘图命令,另一类是在低层命令基础上建立起来的高层绘图命令。高层绘图命令简单明了、方便
2、高效。利用高层绘图用户不需要过多考虑绘图细节,只需要给出一些基本参数就能得到所需图形。3.1 二维数据曲线图二维数据曲线图 MATLAB提供了多种二维图形的绘图指令,但其中最重要、最基本的指令是plot。其它许多特殊绘图指令,或以它为基础而形成,或使用场合较少。本节主要介绍直角坐标系下的二维数据曲线图。绘制二维曲线无疑是其他绘图操作的基础。3.1.1 单根二维曲线单根二维曲线 在在MATLAB中,绘制直角坐标系下的二维曲中,绘制直角坐标系下的二维曲线可以利用线可以利用plot函数。函数。plot函数的基本调用格函数的基本调用格式为:式为:plot(x,y)其中其中x和和y为长度相同的向量,分别
3、用于存储为长度相同的向量,分别用于存储x坐标和坐标和y坐标数据。坐标数据。plot函数用于绘制分别以函数用于绘制分别以x坐标和坐标和y坐标为横、坐标为横、纵坐标的二维曲线。纵坐标的二维曲线。x和和y所包含的元素个数所包含的元素个数相等,相等,y(i)是是x(i)点的函数值。点的函数值。例 绘制曲线这是以下参数方程形式给出的二维曲线,只要给定参数向量,再分别求出x、y向量即可绘出曲线。程序如下:t=0:0.1:8*pi;x=cos(t)+t.*sin(t);y=sin(t)-t.*cos(t);plot(x,y)程序执行后,打开一个图形窗口,在其中绘出二维曲线,如图所示。-30-20-10010
4、2030-30-20-100102030 3.1.2 多根二维曲线多根二维曲线 在实际应用中,plot函数的输入参数有许多变化形式。1.plot函数的输入参数是矩阵形式 当plot函数的输入参数是向量时,绘制单根曲线,这是最基本的用法。在实际应用中,plot函数的输入参数可以是矩阵形式,这时将在同一坐标中以不同颜色绘制多根曲线。(1)当x是向量,y是有一维与x同维的矩阵时,则绘制出不同颜色的曲线。曲线条数等于y矩阵的另一维数,x被作为这些曲线共同的坐标。例如,下列程序可以在同一坐标中同时绘出3根正弦曲线。命令为:x=linspace(0,2*pi,100);y=sin(x);1+sin(x);
5、2+sin(x);plot(x,y)程序首先产生一个行向量x,然后求具有3行的矩阵y,最后在同一坐标中同时绘制出3条曲线。(2)当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。试分析下列程序绘制的曲线图形。x=0:pi/10:2*pi;y=sin(x);plot(x;x;x,y;y*2;y*3)(3)对只包含一个输入参数的plot函数,当输入参数是实矩阵时,则按列绘制每列元素值相对其坐标下的曲线,曲线条数等于输入参数矩阵的列数。当输入参数是复数矩阵时,则按列分别以元素实部和虚部为横、纵坐标绘制多条曲线。例如,下面的程序可以绘制3个同心圆。t=0:0.
6、01:2*pi;x=exp(i*t);y=x;2*x;3*x;plot(y)2.含多个输入参数的plot函数 当plot函数有多个输入参数,且都为向量时,即 plot(x1,y1,x2,y2,xn,yn)其中,x1和y1,x2和y2,xn和yn分别组成一组向量对,每一组向量对的长度可以不同。每一向量对可以绘制出一条曲线,这样可以在同一坐标内绘制出多条曲线。例如,在同一坐标中绘制三条幅值不同的正弦曲线,命令也可写成:x=0:pi/10:2*pi;y=sin(x);plot(x,y,x,y*2,x,y*3)3.plotyy函数 MATLAB中的plotyy函数能够绘制双轴图,即在图形左右两侧的y轴
7、度量绘制数据图。在同一个图中度量不同的图形,这样可以使图形表达更加简练,而且有利于数据对比。格式:plotyy(x1,y1,x2,y2)plotyy(x1,y1,x2,y2,function)plotyy(x1,y1,x2,y2,function1,function2)AX,H1,H2=plotyy()3.1.3设置曲线样式设置曲线样式 MATLAB提供了一些绘图选项,用于确定所绘曲线的线型、颜色和数据点标记符号。这些选项它们可以组合使用。例如,“b-.”表示蓝色点话线,“y:d”表示黄色虚线并用菱形符号标记数据点。当选项省略时,MATLAB规定,线型一律用实线,颜色将根据曲线的先后顺序依次采
8、用蓝色、绿色、红色、青色、品红色、黄色、黑色。要设置曲线样式可以在plot函数中加绘图选项,其调用格式为:plot(x1,y1,选项1,x2,y2,选项2,xn,yn,选项n)在类似plot(x,y,s)形式的作图中,格式s可以使用系统默认的格式,也可以重新设置。常用的格式s见表3.2表3.4,其它格式(比如线宽等)可以通过help plot学习使用。例 3-4 以线宽5、红色、点划线、叉号形式绘制x0,2内的正弦函数的图形。命令如下:x=0:pi/10:2*pi;y=sin(x);plot(x,y,r-.x,LineWidth,5);如果只作数据点,格式s直接设置为点型即可,如只作出数据点:
9、x=0 1 2 3;y=2 3 4 5;plot(x,y,o);而作成系统默认的实线:X=0 1 2 3;y=2 3 4 5;plot(x,y);3.1.4 图形的标注与坐标控制图形的标注与坐标控制 1.图形的标注 在绘制图形时,可以对图形加上一些说明,如图形名称、坐标轴说明以及图形某一部分的含义等,这些操作称为添加图形标注,以使图形意义更加明确,可读性更强。图形标识包括:图名(title)、坐标轴名(label)、图形注释(text)和图例(legend)。标识指令的最简捷使用格式如下:title(s)书写图名 xlabel(s)横坐标轴名 ylabel(s)纵坐标轴名 legend(s1,
10、s2,)绘制曲线所用线型、色彩或数据点形图例 text(xt,yt,s)在图面(xt,yt)坐标处书写字符注释 例 在0 x2区间内,绘制曲线和,并给图形添加图形标注。程序如下:x=0:pi/100:2*pi;y1=2*exp(-0.5*x);y2=cos(2*pi*x);plot(x,y1,x,y2)title(x from 0 to 2pi);%加图形标题 xlabel(Variable X);%加X轴说明 ylabel(Variable Y);%加Y轴说明 text(0.8,1.5,曲线y1=2e-0.5x);%在指定位置添加图形说明 text(2.5,1.1,曲线y2=cos(2pix
11、);legend(y1,y2)%加图例 程序运行结果如图所示。01234567-1-0.500.511.52x from 0 to 2Variable XVariable Y曲 线 y1=2e-0.5x曲 线 y2=cos(2x)y1y2 2.坐标控制 一般而言,plot命令会根据所给的坐标点来自动决定图轴的范围,但是也可以使用axis命令来指定,它用于控制坐标轴的可视、取向、取值范围和轴的高宽比等,其使用语法如下:axis(xmin xmax ymin ymax)其中xmin和xmax指定x轴的最小和最大值,ymin和ymax则指定y轴的最小和最大值。例 在0 x4,画出正弦波在y轴介于0和
12、1的部分。程序如下:x=0:0.1:4*pi;y=sin(x);plot(x,y);axis(-inf,inf,0,1);程序结果如图所示。axis函数功能丰富,常用的格式如下:axis auto:使用默认设置。axis equal:纵、横坐标轴采用等长刻度。axis square:产生正方形坐标系(默认为矩形)。axis on/off:显示、取消坐标轴。给坐标轴加网格线用grid命令来控制,加边框用box命令来控制。grid on/off命令控制是画还是不画网格线,box on/off命令控制是加还是不加边框线。02468101200.20.40.60.81 3.1.5 图形窗口的分割图形窗
13、口的分割 在实际应用中,经常需要在一个图形窗口内绘制若干个独立的图形,这就需要对图形窗口进行分隔。分割后的图形窗口由若干个绘图区组成,每一个绘图区可以建立独立的坐标系并绘制图形。同一图形窗口中的不同图形称为子图。MATLAB提供了subplot函数,用来将当前图形窗口分割成若干个绘图区。每个区域代表一个独立的子图,也是一个独立的坐标系,可以通过subplot函数激活某一区域,该区为活动区,所发出的绘图命令都是作用于活动区域。subplot函数的调用格式为:subplot(m,n,p)该函数将当前图形窗口分成个绘图区,即每行个,共行,区号按行优先编号,且选定第p个区为当前活动区。在每一个绘图区允
14、许以不同的坐标系单独绘制图形。3.2 其他二维图形其他二维图形 前面我们介绍的图形绘制中,坐标轴基本上都是线性刻度的。而在有些学科的研究中这个线性刻度的图形满足不了要求。例如,在控制工程、信号处理等学科中,往往要求绘制出对数坐标的图形,在另一些学科中,有时要绘制出极坐标的图形。MATLAB为我们方便的绘制这些图形提供了专用的命令,另外,MATLAB还为我们提供了绘制其他不同类型的特殊二维图形的命令。3.2.1 特殊坐标图形的绘制特殊坐标图形的绘制 1.绘制对数坐标图形 在工程应用中,经常用到对数坐标。MATLAB提供了绘制对数和半对数坐标曲线的函数,调用格式为:semilogx(x1,y1,选
15、项1,x2,y2,选项2,)semilogy(x1,y1,选项1,x2,y2,选项2,)loglog(x1,y1,选项1,x2,y2,选项2,)其中选项的定义与plot函数完全一致,所不同的是坐标轴的选取。semilogx函数使用半对数坐标,x轴为常用对数刻度,而y轴仍保持线性刻度。Semilogx函数也是用半对数坐标,y轴为常用对数刻度,而x轴仍保持线性刻度。Loglog函数使用全对数坐标,x,y轴均采用常用对数刻度。例 绘制的对数坐标图并与直角线性坐标图进行比较。程序如下:x=0:0.1:10;y=10*x.*x;subplot(2,2,1);plot(x,y);title(plot(x,
16、y);grid on;subplot(2,2,2);semilogx(x,y);title(semilogx(x,y);grid on;subplot(2,2,3);semilogy(x,y);title(semilogy(x,y);grid on;subplot(2,2,4);loglog(x,y);title(loglog(x,y);grid on;程序执行结果如图所示。051005001000plot(x,y)10-110010105001000semilogx(x,y)051010-5100105semilogy(x,y)10-110010110-5100105loglog(x,y)2.绘制极坐标图形 格式:polar(theta,radius,option)功能:绘制出一个二维折线图形,该图形的各个数据点由极坐标的形式给出。说明:参数theta为极坐标极角,表示各个数据点的角度向量;参数radius为极坐标失径,表示各个数据点的幅值向量;参数option是一个选项参数,其内容与plot函数的选项参数类似。3.2.2特殊二维图形的绘制特殊二维图形的绘制 这里介绍一些特殊图形,这