版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
TOC\o”1—4”\h\z\uHYPERLINK\l"_Toc168028534"第2章MATLAB二维绘图PAGEREF_Toc168028534\h3HYPERLINK\l”_Toc168028535"2.1二维绘图基本流程PAGEREF_Toc168028535\h3HYPERLINK\l”_Toc168028536"2。2二维图形的基本绘图命令PAGEREF_Toc168028536\h5HYPERLINK\l"_Toc168028537"2。2.1高级绘图命令PAGEREF_Toc168028537\h5HYPERLINK\l”_Toc168028538"2。2。2低级绘图命令PAGEREF_Toc168028538\h7HYPERLINK\l”_Toc168028539"2。2二维图形的修饰PAGEREF_Toc168028539\h9HYPERLINK\l"_Toc168028540”2.2.1坐标轴的调整PAGEREF_Toc168028540\h9HYPERLINK\l"_Toc168028541”2.2。1.1调整坐标轴的范围PAGEREF_Toc168028541\h9HYPERLINK\l”_Toc168028542”2。2。1.2调整坐标轴的状态PAGEREF_Toc168028542\h10HYPERLINK\l”_Toc168028543”2。2。1。3保存坐标轴的范围PAGEREF_Toc168028543\h12HYPERLINK\l”_Toc168028544”2.2.1。4保存坐标轴的状态PAGEREF_Toc168028544\h12HYPERLINK\l”_Toc168028545”2。2.2画出或取消网格线PAGEREF_Toc168028545\h13HYPERLINK\l”_Toc168028546"2。2。3设置坐标轴的名称PAGEREF_Toc168028546\h13HYPERLINK\l"_Toc168028547"2。2.4设置图形标题PAGEREF_Toc168028547\h14HYPERLINK\l"_Toc168028548"2。2.5在图形中显示文字PAGEREF_Toc168028548\h15HYPERLINK\l"_Toc168028549"2.2.5.1用坐标轴确定文字位置PAGEREF_Toc168028549\h15HYPERLINK\l”_Toc168028550”2.2.5。2用鼠标确定位置显示文字PAGEREF_Toc168028550\h16HYPERLINK\l”_Toc168028551"2。2。6图形的标定和颜色条PAGEREF_Toc168028551\h17HYPERLINK\l”_Toc168028552”2。2.7使用绘图工具栏标注图形PAGEREF_Toc168028552\h19HYPERLINK\l"_Toc168028553"2。3填充图形的绘制PAGEREF_Toc168028553\h20HYPERLINK\l”_Toc168028554"2。4多坐标系绘图与图形窗口的分割PAGEREF_Toc168028554\h21HYPERLINK\l”_Toc168028555"2.4.1图形叠印法PAGEREF_Toc168028555\h21HYPERLINK\l”_Toc168028556”2。4.2子图的绘制PAGEREF_Toc168028556\h22HYPERLINK\l"_Toc168028557”2。5特殊坐标图形的绘制PAGEREF_Toc168028557\h23HYPERLINK\l”_Toc168028558"2.5。1绘制极坐标图形PAGEREF_Toc168028558\h23HYPERLINK\l”_Toc168028559"2。5.2对数/半对数坐标系绘图PAGEREF_Toc168028559\h24HYPERLINK\l”_Toc168028560"2.6特殊二维图形的绘制PAGEREF_Toc168028560\h25HYPERLINK\l”_Toc168028561”2.4.3直方图PAGEREF_Toc168028561\h25HYPERLINK\l"_Toc168028562”2。4.1柱状图和面积图PAGEREF_Toc168028562\h27HYPERLINK\l"_Toc168028563”2。4。2饼图PAGEREF_Toc168028563\h28HYPERLINK\l"_Toc168028564”2。4。4离散数据绘图PAGEREF_Toc168028564\h29HYPERLINK\l"_Toc168028565”2.4.5等高线图PAGEREF_Toc168028565\h31HYPERLINK\l”_Toc168028566"2。4.6向量图PAGEREF_Toc168028566\h32HYPERLINK\l”_Toc168028567”2.7函数绘图PAGEREF_Toc168028567\h35HYPERLINK\l"_Toc168028568"2.7。1fplot函数PAGEREF_Toc168028568\h35HYPERLINK\l”_Toc168028569”2。7.2函数function的定义PAGEREF_Toc168028569\h36HYPERLINK\l”_Toc168028570"2。8工作空间直接绘图PAGEREF_Toc168028570\h37HYPERLINK\l”_Toc168028571”2.9手工绘图方式PAGEREF_Toc168028571\h40HYPERLINK\l"_Toc168028572"2.10小结PAGEREF_Toc168028572\h42第2章MATLAB二维绘图数据可视化是MATLAB一项重要功能,它所提供的丰富绘图功能,使得从繁琐的绘图细节中脱离出来,而能够专心于最关心的本质.通过数据可视化的方法,工程科研人员可以对自己的样本数据的分布、趋势特性有一个直观的了解。本章将重点介绍MATLAB二维图形的绘制方式,并按照完整的步骤来说明一个图形产生的流程,以便将数据以图形形式来识别。通过本章,读者不仅能掌握二维绘图的基本流程,而且能熟练使用MATLAB中相应的绘图命令、函数来绘制二维图形。2.1二维绘图基本流程在MATLAB中绘制图形,通常采用以下7个步骤:(1)准备数据;(2)设置当前绘图区;(3)绘制图形;(4)设置图形中曲线和标记点格式;(5)设置坐标轴和网格线属性;(6)标注图形;(7)保存和导出图形。二维图形的绘制,也通过上述7个步骤来完成。下面以实例来说明二维绘图的各个主要步骤。例2—1MATLAB中典型的二维图形绘制流程实例。在同一坐标轴上绘制sin(x)、sin(2x)和sin(3x)这三条曲线。解:在MATLAB中,通过如表2—1所示的步骤来实现上述图形绘制。表2—1基本绘图流程绘图步骤主要工作1。数据准备准备好绘图需要的横坐标变量和纵坐标变量数据2.设置当前绘图区在指定的位置创建新的绘图窗口,并自动以此窗口的绘图为当前绘图区3。绘图创建坐标轴,指定叠加绘图模式,绘制函数曲线4。设置图形中曲线和标记点格式设置图形中的线宽、线型、颜色和标记点的形状、大小、颜色等。5.设置坐标轴和网格线属性将坐标轴的范围设置在指定曲线6。标注图形在图形中添加标题、坐标轴标注、文字标注等7.保存和导出图形按指定文件格式、属性保存或导出图形对于此题,在MATLAB编写createfigure函数来实现,createfigure函数的代码如下:运行该程序后,输出如图2—1所示的结果:图2—1二维图形绘制输出的结果(例1-1)在图形的绘制流程中,需要注意的是:(1)上面所谓的7个步骤的顺序也不是完全固定,尤其是其中对图形进行修饰标注的4、5、6步骤,完全可以改变顺序;(2)MATLAB中对于图形中的曲线和标记点格式有默认的设置,这在一般情况下是可以满足使用者需要的,因此对于只是想大概察看一下数据分布的用户,只需要进行第1、3步工作就可以了。2.2二维图形的基本绘图命令MATLAB提供了两种级别的二维图形基本绘图命令:(1)高级绘图命令plot它以一体化的方式绘出图形,即用户只须给出图形定义数据,绘图范围、刻度大小等,细节内容都可由系统自动确定。(2)低级绘图命令line它允许用户在图形窗口的任意位置用低级绘图命令line画直线或折线.下面分别进行讲述。2。2。1高级绘图命令plot函数是MATLAB中最核心的二维绘图函数,它有多种语法格式可以实现多种功能.(1)最简单的用法plot(Y)当Y是一维数组时,plot(Y)是把(i,X(i))各点顺次连接起来,其中i的取值范围从1到length(X)。当Y是普通的二维数组时,相当于对Y的每一列进行plot(Y(:,i))画线,并把所有的折线累叠绘制在当前坐标轴下。(2)最常用的用法plot(X,Y)plot最常用的语法格式是接受两个参数的plot(X,Y)当X和Y都是一维数组时,功能和line(X,Y)类似;但plot函数中的X和Y也可以是一般的二维数组,这时候就是对X和Y的对应列画线。特别的,当X是一个向量,Y是一个在某一方向和X具有相同长度的二维数组时,plot(X,Y)则是对X和Y的每一行(或列)画线。(3)拓展的用法plot(X1,Y1,X2,Y2,….Xn,Yn)对多组变量同时进行绘图了,对于每一组变量,其意义同前所述。例2-2高级绘图函数plot绘图实例。利用plot(x)和多组变量的语法格式绘制y=sinx、y=cosx、y=sin(x—0。1)、y=cos(x+0.1)的二维图形。解:在MATLAB命令窗口中输入以下命令:运行以上M代码程序,得到图2-2所示的结果图形。将程序中plot(y1)替换成以下语句,将会得到图2-3所示结果图形。图2-2plot(y1)画线结果(例2-2)图2—3多组数据的plot结果(例2—2)从图2-3可以看到,多组数据绘图时,MATLAB默认通过不同的颜色区分了各条曲线。实际上,plot函数绘图指令中就可以设置各条曲线的颜色、线型等属性,这时候plot函数对应的语法格式为:plot(X1,Y1,LineSpec,。。.),其中LineSpec就是一个指定曲线颜色、线型等特征的字符串.plot函数采用plot(X1,Y1,LineSpec,。.。)的语法格式时,可以通过字符串LineSpec指定曲线的线型、颜色以及数据点的标记类型。这在突出显示原始数据点和个性化区分多组数据的时候是十分有用的.例如’—。or’就表示连线采用点划线类型,数据点用圆圈标记,颜色都设为红色。需要注意的是,当指定了数据点标记类型,但不指定线型时,则表示只标记数据点,而不进行连线绘图。MATLAB默认是用颜色区分多组曲线,但在只能黑白打印或显示的情况下,个性化的设置曲线线型就成了唯一的区分方法。表2-2列出了MATLAB中可供选择的曲线线型、颜色和标记点类型。表2—2LineSpec可选字符串列表线型颜色数据点标记类型标识符意义标识符意义标识符意义-实线r红色+加号—。点划线g绿色o圆圈--虚线b蓝色*星号:点线c蓝绿色。点m洋红色x交叉符号y黄色square(或s)方格k黑色diamond(或d)菱形w白色^向上的三角形v向下的三角形>向左的三角形〈向右的三角形pentagram(或p)五边形hexagram(或h)六边形例2-3在同一图形窗口中绘制和,并用不同的线型、颜色和标记点。解:在MATLAB命令窗口中输入以下命令:运行程序代码,输出如图2—4所示的结果图形:图2—4不同线性、不同颜色、不同标记点的图形(例2-3)2。2。2低级绘图命令MATLAB允许用户在图形窗口的任意位置用低级绘图命令line画直线或折线。line函数的常用语法格式为:line(X,Y)其中X,Y都是一维数组,line(X,Y)能够把(X(i),Y(i))代表的各点用线段顺次连接起来,从而绘制出一条折线。例2—4画线函数line使用实例。利用函数line绘制y=sinx的图形。解:在命令窗口输入以下命令:运行以上程序代码后,得到如图2—4的图形:图2—5line函数画线(例2—4)例2—5画线函数line使用实例。利用函数line为和的图形上加上两条水平线。解:在MATLAB命令窗口输入以下代码运行该程序代码,输出图2—5所示结果图形:图2-6添加有水平线的二维曲面图(例2—5)2。2二维图形的修饰由前面的图2—1至2-6可以看出,当利用plot命令绘图时,虽然运用起来比较简单,但它所自动产生的图形却显得有些简单,未能产生特殊的效果.为此MATLAB提供了一些图形函数,专门对由plot命令所画出的图形进行进一步的修饰,以使其更加美观、更便于应用。如坐标轴范围的设定(axis命令)、加坐标轴名称(xlabel、ylabel命令)、加网络(grid命令)、加图形加图题(title命令)、对图形进行文字注释(text命令)等。下面将分别进行讲述.2。2。1坐标轴的调整MATLAB可以自动根据曲线数据的范围选择合适的坐标系,从而使得曲线能够尽可能清晰地显示出来,所以在一般情况下用户不必去进行坐标系的选择。但是,如果用户对MATLAB所自动生成的坐标轴不太满意的话,则可以利用axis所要绘制出的图形的坐标轴进行调整。axis命令的功能非常丰富,按常用用法有如下4类:调整坐标轴的范围;调整坐标轴的状态;保存调整坐标轴的范围;保存坐标轴的状态。2。2。1.1调整坐标轴的范围MATLAB采用axis函数可以根据需要适当调整坐标轴的范围,该函数调用格式是:axis([xminxmaxyminymax])此函数将所画的X轴的大小范围限定在{xmin,xmax}之间,Y轴的大小范围限定在{ymin,ymax}之间.需要说明的是,在绘图时,由于图形的坐标已经给定,所以对坐标轴范围参数的更改,其实际效果也就相当于对原图形进行了放大或缩小处理。例2—6调整坐标轴函数axis使用实例。利用函数axis调整y=sinx的坐标轴范围。解:在命令窗口输入下面的代码执行程序后,可以得到如图2-7所示的图形。而如果将最后的一条命令改为:就可以画出如图2-8所示的图形,其显示效果就好像对图2-7的Y轴进行了压缩。图2-7坐标轴调整之前的图形图2—8坐标轴调整之后的图形2.2。1.2调整坐标轴的状态MATLAB在绘图功能中可以根据视图需求,适当调整坐标轴状态,该函数的调用格式是:axis(str)此函数的功能是将坐标轴的状态设定为字符串参数str所指定的状态。参数str是由一对单引号(``)所包起来的字符串(也可以省略这对单引号),它表明了将坐标轴调整为哪一种状态.各种常用字符串的含义如表2—3所示。表2—3Axis各种常用字符串命令形式命令功能axis([xminxmaxyminymax])按照用户给出的X轴和Y轴的最大、最小值选择坐标系axisauto或者axis(`auto`)自动设置坐标系:xmin=min(x):xmax=max(x);ymin=min(y);ymax=max(y);axisxy或者axis(`xy`)使用笛卡尔坐标系axisij或者axis(`ij`)使用matrix坐标系。即:坐标原点在左上方,x坐标从左向右增大,y坐标从上向下增大axissquare或者axis(`square`)将当前图形设置为正方形图形axiseaual或者axis(`equal`)将x,y坐标轴的单位刻度设置为相等axisnormal或者axis(`normal`)关闭axisequal和axissquare命令axisoff或者axis(`off`)关闭网络线、xy坐标的用label命令所加的注释,但保留用图形中text命令和gtext命令所添加的文本说明axison或者axis(`on`)打开网络线、xy坐标的用label命令所加的注释只要不产生矛盾的含义,一些不同的参数str可以同时起作用,即在语句axis(str)的参数中,可以使用多个修饰字符串,如axis(`auto`,`on`,`ij`)。例2—7坐标轴设置函数axis使用实例.利用axis函数为y=sinx绘制笛卡尔坐标系。解:在命令窗口输入下面的代码或输入以上命令设置后,运行程序,可以得出图2—9所示的结果图形.图2—9笛卡尔坐标系下的正弦曲线图2-10屏幕坐标系下的正弦曲线笛卡尔坐标系的图形,其坐标系的X轴是从左到右,Y轴是由下向上。而有时我们需要绘制Y轴是由上向下的图形,即符合屏幕坐标系的图形,这时可由下述命令来设置坐标轴的方向:或此时所绘制出的正弦曲线图形如图2-10所示.例2—8图形调整函数axis使用实例。利用函数axis绘制一个半径r=1的单位圆.解:在命令窗口直接输入以下程序代码,执行以上程序后,可以得到如图2-11所示的图形。仔细观察图2—11可知,这个单位圆有点像一个椭圆,这主要是由于计算机屏幕上X方向和Y方向的单位长度不一致造成的.但下述命令将可以消除这种不一致,从而可以绘制出一个真正的单位圆(如图2—12所示)。axis(`square`)或axissquare图2—11未进行刻度调整的单位圆图2-12用axis(`square`)调整刻度后的单位圆下述的命令也可以消除这种不一致,从而可以绘制出一个标准的单位圆(如图2-11所示)。axis(`equal`)或axisequal注意,axis(`square`)的含义是将X坐标轴长度与Y坐标轴长度调整为正方形,而axis(`equal`)的含义是将X坐标轴和Y坐标轴的单位刻度大小调整一样长短。若用下述命令却可以将图形恢复显示为刻度调整前的形式(图2-11).axis(`normal`)或axisnormal用下述命令可以关闭或打开图形的坐标轴。axis(`off`)或axisoffaxis(`on`)或axison图2-14所示为用axis(`off`)命令将图2-13所示图形去掉坐标轴后的单位圆。图2—13用axis(`equal`)调整刻度后的单位圆图2-14用axis(`off`)去掉坐标轴后的单位圆2。2.1。3保存坐标轴的范围MATLAB中有一种可以将坐标轴的范围值[xminxmaxyminymax]存储到向量variable中的功能,该功能实现的格式是:variable=axis变量variable保存的是一个向量值,显然这个向量值能够以axis(variable)的形式应用于设定坐标轴的大小范围。例2—9对于由例2-8程序所绘制出的图2-11,检查其坐标轴的范围。解:在命令窗口输入下面的代码,可以实现检查坐标轴的范围2。2.1.4保存坐标轴的状态MATLAB中可以将当前所使用的坐标轴的状态存储到向量中,这种功能的格式是[s1,s2.s3]=axis(`state`),该功能是将当前所使用的坐标轴的状态存储到向量[s1,s2,s3]中。在使用该功能时,需要说明以下几点:(1)s1说明是否自动设定坐标轴的范围,取值为`auto`或`manual`;(2)s2说明是否关闭坐标轴,取值为`on`或`off`;(3)s3说明所使用的坐标轴的种类,取值为`xy`或`ij`。例2-10对于例2—8程序所绘制的图2—11,检查其坐标轴的当前状态。解:在命令窗口输入以下的代码:2.2。2画出或取消网格线在MATLAB二维图形中,有无网格线对于图形的显示效果有很大的影响,我们利用grid函数就可以轻松实现对二维图形中网格线的显示进行控制。grid函数使用的基本格式为:(1)gridon功能是在所画出的图形中添加网格线.(2)gridoff功能是将已有的网格线的图形去掉其网格线.例2-11网格线控制函数grid使用实例.利用grid命令去掉单位圆图形的网格线。解:在命令窗口直接输入以下程序代码,运行程序后,可以得到如图2-16所示的图形:图2—15带有网格线的图形图2-16不带有网格线的图形2.2。3设置坐标轴的名称添加并设置坐标轴标签的函数是xlabel和ylabel,格式为:(1)xlabel(’string')设置横轴标签为字符串值。(2)xlabel(。.。,'PropertyName’,PropertyValue,.。.)在设置横轴标签值的同时设置其相关属性,比如文字颜色、旋转角度、字体、加粗等.通过插入菜单的XLabel、YLabel项可以设置图形的横轴和纵轴的标签,默认情况下,横轴标签被安排在横轴下方中间位置并且水平排列,纵轴标签被安排在纵轴左方位置并且垂直排列。坐标轴标签和标题类似,虽然有属于文本,但又不同于普通的文本标注,当用户平移、缩放坐标轴时,坐标轴标签会随着变化以适应变化后的坐标轴位置.例2-12坐标轴标注函数xlabel和ylabel使用实例.利用已有数据作出北京降水量图,并标注坐标轴标签。解:在M程序编辑器中输入以下代码:保存以上M程序文件,执行程序后得到图2—16所示的结果:图2-17坐标轴标签(例2—12)2.2.4设置图形标题MATLAB中有专门的函数title来为图形添加标题,调用这种函数的格式是:(1)title(’string’)设置当前绘图区的标题为字符串string的值。(2)title(。..,’PropertyName’,PropertyValue,...)可以在添加或设置标题的同时,设置标题的属性,如字体、颜色、加粗等。例2—13图形标注函数title使用实例.利用title函数为图形添加标题.解:在命令窗口输入下面的代码执行程序后,可以得到2—18所示结果图形:图2—18设置图形标题(例2—13)2。2。5在图形中显示文字MATLAB允许用户在图形的任意位置加注一串文字。加注文字的时候,MATLAB提供了两种不同确定文字位置的操作方式:(1)用坐标轴确定文字位置;(2)用鼠标确定文字位置。下面分别介绍这两种不同确定文字的方式。2。2。5.1用坐标轴确定文字位置MATLAB允许用户在图形窗口的任意位置用低级命令书写一串字符。该方式的格式是text(x,y,string,option),主要功能是在图形指定坐标位置(x,y)处,写出由string所给出的字符串。坐标(x,y)的单位是由选项参数option决定的。如果不给出该选项参数,则(x,y)坐标的单位与图中的单位是一致的。如果选项参数取为`sc`,则(x,y)坐标表示规范化的窗口相对坐标,其变化范围为0~1,即该窗口绘图范围的左下角坐标为(0,0),右上角坐标为(1,1)。例2—14坐标轴标注函数text使用实例。利用text函数在y=sinx指定位置添加文字。解:在命令窗口输入以下代码运行程序后,可以得到如2-19所示结果图形:图2-19带有文字说明的正弦曲线2。2。5。2用鼠标确定位置显示文字用text命令可以在图形的任意位置上加注文字,但是前提是必须知道其位置坐标。MATLAB也允许用户用鼠标移动的方式在图形窗口中的某一位置放置一个字符串。用鼠标确定位置显示文字函数是gtext,利用该函数可以通过鼠标,在图形的某一位置写出由string所给出的字符串。gtext是交互式文本框标注函数,其常用语法格式为:(1)gtext(’string')可以在鼠标点击的位置标注一个单行文本框。(2)gtext({'string1','string2','string3',。.。})可以在鼠标点击位置标注一个多行文本框.(3)gtext({’string1’;'string2';’string3’;。.。})可以在通过多次鼠标点击标注多个文本框。例2—15文本框标注函数gtext使用实例。利用gtext函数对y=2sinx+2cosx进行文本框标注.解:在命令窗口输入以下代码执行以上程序后,可以得到如2-20所示结果图形:图2-20文本框标注(例2-15)2.2。6图形的标定和颜色条图例是可以用来标注图形中不同颜色、线型的数据组的实际意义。用户可以通过单击插入菜单的图例(Legend)项,或者单击图形工具条的图例按钮,或者通过legend命令来添加图例以标注图形中的多组数据。通过菜单或工具按钮的方法添加图例后,图例的各项文字被设置为data1、data2等。要达到用户自定义的设置,使用lengend函数是比较方便的。legend函数的常用方法为:(1)legend(’string1’,'string2',。..)添加图例,并设置各组数据的图例文字为对应位置字符串值。(2)legend('off')清除图例;(3)legend(’hide’)隐藏图例;(4)legend(’show')显示图例。例2—16图形标定函数legend使用实例。利用legend函数为y=sinx、y=cosx、y=sin2x*cosx图形添加图例。解:在M文件编辑器输入以下代码保存文件后,执行程序可以得到如2-21所示的图形:图2—21图例(例2-16)颜色条是用于显示图形中颜色和数值对应关系的,它主要用在三维图形或其二维等高线图形中。用户可以通过单击插入菜单的颜色条(Colorbar)项,或者单击图形工具条的颜色条按钮,或者通过colorbar命令来添加颜色条。例2—17颜色条函数colorbar使用实例.利用colorbar为图形添加颜色条.解:在命令窗口输入以下代码执行程序后,可以得到如2—22所示的图形:图2-22颜色条(例2—17)对照图形中的颜色、数值和颜色条中对应颜色、数值,就可以发现颜色条是标志图形中颜色对应的数值范围了。2。2。7使用绘图工具栏标注图形除了使用函数方式来标注图面外,另一种比较方便的做法是直接使用绘图工具栏功能,首先在绘图窗口的菜单中选取【View】中【PlotEditToorbar】选项,即会显示如图2—22所示的工具栏,这些工具的功能都类似于微软的画板功能,因此可以很方便地使用:图2-23PlotEdit工具栏使用这种方法标注图形的步骤是:(1)首先,单击【EditPlot】按钮,选取如图2-24所示的曲线为当前对象后,就可以通过【Color】按钮来改变曲线的颜色;或单击【EditPlot】按钮,选取如图2-24所示的坐标轴为当前对象后,就可以通过【Color】按钮来填充整个坐标系的背景的颜色了.(2)在绘图窗口中除了可以插入label、title或text于图中外,还可以单击【InsertTextbox】按钮,于图面上单击鼠标左键来放置该文本框的显示位置,则完成后会自动显示一文本框,于框内输入文字即可,如图2—24所示,MATLAB会自动依据适合的大小来调整文本框,当然,用户也可以自行通过鼠标拖拽来修改文本框的大小与位置.图2—24PlotEdit工具栏的应用(3)因为我们要指定出两个波峰间的距离,因此单击【InsertLine】按钮,在两波峰两位置出使用鼠标拖拽出两条线,在通过【InsertDoubleArrow】按钮画出两线间的箭头;最后我们在该箭头上方建立一个文本框并输入文字的内容为\pi,假设文本框已为当前对象,在文本框上单击鼠标右键选取“EdgeColor"选项后,将框的颜色设为白色即可。图2-25所示为完成后的图形.图2-25应用PlotEdit工具栏标注图形(4)图中所有建立好的对象都可以通过【EditPlot】按钮选取为当前对象后,来修改相关属性,如Text对象就可以通过工具栏的工具来更改文字的颜色、对齐方式、字型与字体等设置。2。3填充图形的绘制有时,为了美观起见,我们需要对一个封闭的图形进行填充处理。MATLAB提供了1个用于图形填充的命令fill。fill函数会将x和y数据所指定的点相连,以形成一个封闭的二维多边形,并将此多边形填充颜色。fill的使用方式如下:(1)fill(x,y,d)在x与y的数据中,用d指定颜色来填充建立一个多边形。其中d为颜色映像索引向量或矩阵或颜色字符(`r`,`g`,`b`,`c`,`m`,`y`,`w`,`k`)。若d是列向量,则length(d)必须等于size(x,2)与size(y,2)。若d为行向量,则length(d)必须等于size(x,1)与size(y,1)。如果必要,fill函数会自动将多边形依据起点与终点两个端点连接形成一个封闭的多边形。(2)fill(x,y,ColorSpec)用ColorSpec指定的颜色填充由x与y定义的多边形,其中ColorSpec可以为颜色:`r`,`g`,`b`,`c`,`m`,`y`,`w`,`k`.(3)fill(x1,y1,c1,x2,y2,c2)一次定义多个要填充的二维区域.(4)fill(…,`PropertyName`,PropertyValue)允许用户定义组成fill多边形的patch图形对象某个属性名称的属性值.(5)h=fill(…)返回patch图形对象句柄值的向量,并且每一个patch对象对应一个句柄值。例2-18图形填充命令fill使用实例.利用fill函数绘制一个八角形.解:在命令窗口输入以下代码执行该程序,得到如2-26所示的图形:图2—26fill绘制八角形2.4多坐标系绘图与图形窗口的分割在科学研究中,有时我们需要在一张图纸中绘制多幅图形,以便于观看它们之间的关系。虽然我们可以通过坐标平移的方法达到这个要求,但这种方法操作起来比较麻烦。对于这类问题,MATLAB提供了两种解决的方法:(1)图形叠印的方法,即使用同一坐标绘制多幅图形;(2)子图绘制的方法,即利用图形的分割实现多幅子图的绘制.下面分别对这两种方法进行介绍.2.4.1图形叠印法单独使用hold可以把切换当前的绘图叠加模式,将当前绘图窗口的叠加模式从on改变为off,或者从off改变到on.holdon或holdoff则是明确制定当前绘图窗口叠加绘图模式的开关状态.holdall不但实现holdon的功能,使得当前绘图窗口的叠加绘图模式打开,而且使新的绘图指令依然循环初始设置的颜色循环序和线型循环序。当MATLAB执行到某一条绘图指令时,如果没有图形窗口存在,则MATLAB会新建一个图形窗口,并以新建的图形窗口为当前图形窗口绘图;如果有图形窗口已经存在,则该绘图指令会以最后被激活(最后新建、最后被鼠标点击等)的图形窗口为当前图形窗口进行绘图。如果当前图形窗口的叠加绘图模式关闭时,则新执行的绘图指令会冲掉当前图形窗口中已有的图形,只显示最后的绘图指令的执行结果;而如果当前图形窗口的叠加绘图模式开启时,则新执行的绘图指令绘制的函数曲线或数据点会叠加在原来已经有的图形上。例2-19叠加绘图函数hold使用实例.利用函数hold绘制叠加图形.解:在命令窗口输入以下代码执行程序后,可以得到如图2-27所示的图形:图2-27叠加绘图模式(例2-19)2。4。2子图的绘制在一个图形窗口中绘制多幅图的另一种方法是利用子图绘制函数subplot()将当前窗口分割成几个区域,然后再在各个区域中分别绘图。subplot()函数的使用方法如下所述。subplot最常用的语法格式为:subplot(m,n,i)这表示在当前绘图区中建立m行n列个绘图子区,并在编号为i的位置上建立坐标系,并设置该位置为当前绘图区。绘图子区的编号从优先从顶行开始,然后是第二行,第三行……例如,subplot(3,5,9)表示在当前绘图区中建立3行5列各绘图子区,并在第2行,第四列的位置建立坐标系准备绘图.例2-20子图函数subplot使用实例。利用函数subplot分别绘制y=x、y=x^2、y=x^3、y=x^4的子图。解:在命令窗口输入以下代码执行程序后,可以得到如图2—28所示的图形:图2—28子图绘制(例2-20)2。5特殊坐标图形的绘制前面我们介绍的图形绘制中,坐标轴基本上都是线性刻度的.而在有些学科的研究中,这个刻度的图形满足不了要求。例如,在控制工程、信号处理等学科中,往往要求绘制出极坐标的图形,而另一些学科中,有时要绘制出对数坐标的图形。MATLAB为我们方便地绘制这些图形提供了专用的命令.2.5.1绘制极坐标图形MATLAB提供了基本的极坐标绘图函数polar。polar函数常用的格式有两种:(1)polar(theta,rho)(2)polar(theta,rho,LineSpec)其功能类似于plot函数,需要注意的是theta和rho也可以是普通的二维数组,但polar不能接受多对参数输入。例2-21极坐标绘图函数polar使用实例。利用函数polar绘制r=2sin[2(t—/8)]*2cos(2(t—/8)).解:在命令窗口输入以下代码执行程序后,可以得到如2—29所示图形:图2—29极坐标绘图(例2-21)2。5.2对数/半对数坐标系绘图MATLAB中绘图除了用标准的直角坐标系,还可以采用对数刻度坐标系。表2—4列出了MATLAB中和对数/半对数坐标系相关的绘图函数。表2-4对数/半对数坐标系绘图函数函数说明semilogxx轴采用对数刻度的半对数坐标系绘图函数semilogyy轴采用对数刻度的半对数坐标系绘图函数loglogx和y轴都采用对数刻度的半对数坐标系绘图函数这三个函数的使用语法和plot函数相同,唯一不同的就是绘图结果中的坐标轴。例2-22对数/半对数坐标系绘制使用实例.分别利用semilogx、semilogy、loglog绘制y=exp(-x)的图形。解:在命令窗口输入以下代码执行上述程序,可以得到如图2—30所示的图形:图2-30对数/半对数坐标系作图(例2-22)2。6特殊二维图形的绘制除了折线型的图形之外,很多工程及研究领域还使用了其它一些不同类型的特殊二维图形,通过这些特殊二维图形绘制,使用者可以方便的获悉单个数据在整体的数据集中所占的比例,数据点的分布,数据分布的向量信息以及等高线等。2。4.3直方图直方图也称为频数直方图,它用来显示已知数据集的分布情况,已知数据集的数据范围被分割成若干个区间,直方图中用每一个柱条代表处于该区间中的数据点数目。MATLAB中通过hist函数来绘制直角坐标下的频数直方图。例2-23直方图绘制函数hist使用实例。解:在命令窗口输入以下代码执行程序后,可以得到如图2—31所示图形:图2—31频数直方图(例2—23)极坐标下的直方图也称为玫瑰图,绘制函数是rose.例2-24玫瑰图绘制函数rose使用实例。解:在命令窗口输入以下代码执行程序后,可以得到如图2—32所示图形:图2-32玫瑰图(例2—24)2。4。1柱状图和面积图MATLAB中可以用bar或者barh指令绘制柱状图,他们把单个数据显示为纵向或者横向的柱条,这在察看变量的时间变化趋势、比较不同组数据集、比较各个单独数据点在总体中的比重等方面都有重要的指导意义。bar函数可以按照bar(data,’mode’)的语法格式接受模式参数,默认情况下为’grouped'模式,这时候bar函数把数组data的每一行看作一组,画在同一个水平坐标位置.若指定为’stacked’,则把每一组的数据累叠起来绘图。例2—25柱状图绘制函数bar使用实例。解:在命令窗口输入以下代码执行程序后,得到如图2—33所示的结果图形:图2—33柱状图(例2-25)area函数用来绘制面积图,和累叠模式的柱状图类似,面积图也是把每一组数据点累叠绘制,不过他把每一个数据集合的相邻点用线条连起来,并且把每一个数据集合所在区域用颜色填充.例2-26面积图绘制函数area使用实例.解:在命令窗口输入以下代码执行程序后,可以得到如图2—34所示的图形:图2—34面积图(例2—26)2。4.2饼图饼图可以用来显示每一个元素在总体中的比例,MATLAB中绘制二维饼图的函数是pie.若输入数据总和超过1,pie函数会自动计算每一数据在总体中的比例;而当输入数据总和小于1时,pie只绘制输入数据指定的各部分,不足1的部分空缺处理。例2-27饼图绘制函数pie使用实例。利用函数pie(x)、pie(y)绘制子图.解:在命令窗口输入以下代码执行程序后,可以得到如图2—35所示的结果图形:图2—35饼图(例2-27)2.4.4离散数据绘图显示离散数据的变化趋势,除了bar绘制的柱状图外,还有stem绘制的火柴杆图和stairs绘制的阶梯图。火柴杆图是把每一个数据点用一个垂直于横轴的火柴棒来表示,火柴头的位置表示数据点。火柴杆图中可以定制火柴杆的线型、颜色和火柴头的形状、是否填充等属性。例2—28火柴杆图绘制函数stem使用实例。利用stem函数绘制y=exp(—0.5t)sin(7t)的函数图形。解:在命令窗口输入以下代码执行程序后,可以得到如图2-36所示的图形:图2—36火柴杆图(例2-28)例2-29阶梯图绘制函数stairs使用实例。利用函数stairs绘制y=exp(-0。2t)sint的函数图形.解:在命令窗口输入以下代码执行程序,得到如图2—37所示的结果图形:图2-37阶梯图(例2-29)2.4。5等高线图等高线图最常用于显示多元函数(尤其是二元函数)的函数值变化趋势.MATLAB中用contour函数绘制一般的等高线图。clabel可以用来标注等高线图中的函数值,contourf函数则是绘制填充模式的等高线图.例2-30等高线图绘制函数contour使用实例。利用函数contour绘制z=peaks图形的等高线.解:在命令窗口直接输入以下代码执行以上程序后,可以得到如图2-38和图2—39所示的两组图形:图2—38等高线图—1图2-39等高线图22.4.6向量图有些情况下,需要用图形表示数据的方向信息,这时候就需要绘制向量图.MATLAB中常用的向量图包括罗盘图、羽毛图和向量场图。compass函数可以绘制罗盘图,compass函数接受直角坐标参数,而在绘制出的罗盘图中,每一个数据点被表示为极坐标下一条从原点出发的带箭头的线段。例2—31罗盘图绘制函数compass使用实例。解:在命令窗口直接输入以下代码执行程序后,可以得到如图2-40所示的结果图形:图2-40罗盘图(例2-31)函数feather用来绘制羽毛图。feather也接受直角坐标参数,与罗盘图不同的是,羽毛图是在直角坐标系下绘制的,每一个数据点也被表示为带箭头的线段,不过其起点是x轴上间隔单位长度的刻度点.例2-32羽毛图绘制函数feather使用实例.解:在命令窗口直接输入以下代码执行程序后,就可以得到如图2-41所示的结果图形:图2-41羽毛图(例2—32)向量场图的绘制函数是quiver,其语法格式为:quiver(x,y,u,v)表示以(x,y)为起点,用箭头表示(u,v)代表的向量。向量场图也是直角坐标系下的向量图,最常用于描绘梯度场。例2—33向量场图绘制函数quiver使用实例.利用函数quiver绘制peaks图形向量图。解:在命令窗口直接输入以下代码运行以上代码,可以得到如2—42所示图形:图2-42向量场图(例2-33)2。7函数绘图2。7.1fplot函数fplot函数可以用来绘制MATLAB函数或自行定义的函数图形,也就是在一个指定的范围内画出y=f(x)的函数图形,使用方式如下。(1)fplot(‘function',limits)在指定的范围limit内画出函数名为function的函数图形。其中limit表示将图形绘制在指定的坐标范围内,由两种类型:一是只设置X轴坐标范围,比如[X轴最小值,X轴最大值];二是设置X轴与Y轴的范围,如[X轴最小值-X轴最大值-Y轴最小值-Y轴最大值].(2)fplot(‘function’,limits,’LineSpec’)用指定的线型LineSpec画出函数function.LineSpec与先前介绍的plot中的S一样,因此可以输入线条颜色、线条类型、记号类型来修改默认值。注意相对公差tol、绘制点n与LineSpec的输入并无一定的顺序,因此也可以将LineSpec放在前而相对公差放在后,如flop(‘function’,limits,'LineSpec',n,tol)。(3)fplot(‘function’,limits,tol)使用相对公差值为tol画出函数function。相对公差即为误差容忍的范围,MATLAB的默认值为2e—3。如果相对公差设置的太小,绘图速度会非常的慢,所以必须斟酌设置。(4)fplot(‘function’,limits,n)当n>=1时,则fplot至少画出n+1个点,n的默认值为1,并且最大步阶长度被限定在(1/n)*(xmax—xmin)。(5)[X,Y]=fplot(‘function',limits,…。)返回横坐标与纵坐标值赋给变量X和Y,并且在这种使用方式下,fplot将不会在屏幕中画出任何图形.如果用户想画出图形则可以通过返回的X、Y变量值即plot(X,Y)来绘图.(6)[…。]=plot(‘function',limits,tol,n,LineSpec,P1,P2,….)让用户直接将输入参数P1、P2、….传递给函数function.其中函数function的类型为Y=function(X,P1,P2,…。),即为一个function格式的M文件。若想用默认的tol、n或LineSpec值,只需将该参数使用空矩阵([])传递给函数即可。此外,由于fplot函数是采取适应性步阶长度的控制方式来画出函数function的示意图,因此建议在函数变化比较激烈的区间中,尽量采用小的步阶长度,反之,使用大的步阶长度。2.7.2函数function的定义fplot函数中的函数function有3种定义方式:使用M文件,将函数利用M文件编写完成后,直接在fplot中输入文件名称即可;直接定义一个包含变量x且能用函数eval计算的字符串,如e^sin(x)则定义为'exp(sin(x))’;使用匿名函数定义。以下分别介绍定义e^sin(x)的3种方式。下面分别对这3中定义方式进行介绍。(1)使用M文件定义执行程序:(2)直接定义(3)使用匿名函数定义以下范例以不同定义函数的方式来绘制函数图形执行该文件后的结果如图2—43所示。图2-43以不同的定义函数的方式来绘制函数图形2.8工作空间直接绘图随
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年技术主管聘请合同标准版
- 2024年排水管供需合同
- 2024年新建住宅小区物业服务合同
- 2024年拱门空飘安装工程承包合同
- 2024年房产回购合同范本
- 2024年教育培训服务合同协议
- DB4106T 57-2022 社会化环境检测机构服务规范
- 2024年度区块链应用开发合同
- 2024年新型医疗器械研发与销售合同
- 04年塔吊设备进口销售合同
- 2024年小学闽教版全册英语词汇表
- 课题开题汇报(省级课题)
- 清真食品安全管理制度
- 学校心理健康教育合作协议书
- 2024江苏省沿海开发集团限公司招聘23人(高频重点提升专题训练)共500题附带答案详解
- 2024年初级社会体育指导员(游泳)技能鉴定考试题库(含答案)
- 湖北省危险废物监管物联网系统管理计划填报说明
- Unit6ADayintheLife教学设计2024-2025学年人教版(2024)英语七年级上册
- 苏教版三年级上册数学期末考试试卷及解析答案
- 2024年个人劳务承包合同书
- 知道网课智慧《睡眠医学(广州医科大学)》测试答案
评论
0/150
提交评论