第三章MATLAB绘图(二维)07电本黄国营0712020110——matlab语言丰富的图形表现方法,使得数学计算结果可以方便地、多样性地实现了可视化,这是其它语言所不能比拟的。matlab语言的绘图功能不仅能绘制几乎所有的标准图形,而且其表现形式也是丰富多样的。matlab语言不仅具有高层绘图能力,而且还具有底层绘图能力——句柄绘图方法。在面向对象的图形设计基础上,使得用户可以用来开发各专业的专用图形。3.1二维图形3.1.1绘制二维曲线的基本函数一、plot函数曲线的颜色、线型、标记二、图形放大及缩小1.基本绘图函数:plot函数plot(x1,y1,’option1’,x2,y2,’option2’,…)x1,y1给出的数据分别为x,y轴坐标值,option1为选项参数,如曲线的颜色、线型及数据点标记符号等以逐点连折线的方式绘制第1个二维图形;同时类似地绘制第2个二维图形,……等。这是plot命令的完全格式*plot的功能用直线连接相邻两数据点来绘制图形根据图形坐标大小自动缩扩坐标轴,将数据标尺及单位标注自动加到两个坐标轴上,可自定坐标轴,可把x,y轴用对数坐标表示如果打开过图形窗口,则在最近打开的图形窗口上绘制图形,且清除当前图形,绘制新图形,如果未打开窗口,则开一个新的图形窗口Figure可单窗口单曲线绘图;可单窗口多曲线绘图;可单窗口多曲线分图绘图;可多窗口绘图可任意设定曲线颜色和线型可给图形加坐标网线和图形加注功能2.plot的常用格式(1)plot(x)当x为一向量时,以x元素的值为纵坐标,x的序号为横坐标值绘制曲线。当x为一实矩阵时,则以其序号为横坐标,按列绘制每列元素值相对于其序号的曲线,当x为m×n矩阵时,就有n条曲线。(2)plot(x,y)这是最常见的形式。在plot(x,y)中如果x,y是同维向量,该指令以x元素为横坐标值,y元素为纵坐标值绘制曲线。如x是向量,y是有一维与x元素数量相等的矩阵,则以x为共同横坐标,按列绘制y每列元素值,曲线数为y的另一维的元素数。如x,y是同维矩阵,则以x,y对应列元素为横、纵坐标分别绘制曲线,数目等于矩阵的列数。(3)plot(x,y1,x,y2,…)%y写成向量形式以公共的x元素为横坐标值,以y1、y2…元素为纵坐标值绘制多条曲线。当然每条曲线也可以有不同的横坐标(4)plot(x1,y1,x2,y2,…)例3.1绘制出显函数方程在区间内的曲线。在命令窗口输入如下语句x=-pi:pi/10:pi;%以pi/10为步长y=tan(sin(x))-sin(tan(x));%求出各点上的函数值plot(x,y,'--rs','LineWidth',2,...'MarkerEdgeColor','k',...'MarkerFaceColor','g',...'MarkerSize',10)得到的图形如图3.1所示,并标上了线型属性。图3.1以pi/10为步长的曲线tan(sin(x))-sin(tan(x))由于plot()函数只将给定点用直线连接起来,因此步长选得过大,曲线将看似一折线,因此将上述绘图语句步长改为0.05,并在及两个子区间内加密自变量选择点,即将上述语句修改为x=[-pi:0.05:-1.8,-1.801:0.001:-1.2,-1.2:0.05:1.2,1.2:0.001:1.8,1.81:0.05:pi];%以步长方式构造自变量y=tan(sin(x))-sin(tan(x));plot(x,y)得到曲线如图3.2所示。-4-3-2-101234-3-2-10123图3.2细化步长后的曲线tan(sin(x))-sin(tan(x))plot的开关调用格式Plot(x,y,’s’)——开关格式,开关量字符串s设定曲线颜色和绘图方式,使用颜色字符串的前1~3个字母,如yellow—yel表示等。或plot(x1,y1,’s1’,x2,y2,’s2’,…)表3.1MATLAB绘图命令的各种选项色彩字符色彩字符线型字符线型格式y黄-实线m洋红色:点线c青-.点划线r红--虚线g绿b蓝w白k黑-4-3-2-101234-3-2-10123标记符号数据点形式标记符号数据点形式.点小于号o圆s正方形x叉号d菱形+加号p五角星*星号h六角星v向下的三角形^向上的三角形大于号3.2用不同的线型和颜色在同一坐标内绘制曲线y=2e-0.5xsin(2πx)及其包络线。MATLAB程序如下:x=[0:pi/100:2*pi]';y1=2*exp(-0.5*x);x=[0:pi/100:2*pi];y1=2*exp(-0.5*x);y2=2*exp(-0.5*x).*sin(2*pi*x);plot(x,y1,'k:',x,-y1,'k:',x,y2,'b--')%y1和-y1为包络线程序执行结果如图3.3所示,图中首先用黑色虚线绘出两根包络线,再用蓝色双划线绘出曲线y。图3.3用不同线型和颜色绘制的曲线01234567-2-1.5-1-0.500.511.52square正方形diamon菱形pentagram五角星hexagram六角星说明:(1)当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。(2)当x是向量,y是有一维与x同维的矩阵时,则绘制出多根不同色彩的曲线。曲线条数等于y矩阵的另一维数,x被作为这些曲线共同的横坐标。(3)plot函数最简单的调用格式是只包含一个输入参数:plot(x)。2.含多个输入参数的plot函数含多个输入参数的plot函数调用格式为:plot(x1,y1,x2,y2,…,xn,yn)3.含选项的plot函数含选项的plot函数调用格式为:plot(x1,y1,选项1,x2,y2,选项2,…,xn,yn,选项n)3.1.2设置轴的形式与刻度设置在绘制图形时,用户可以使用函数axis和set对坐标轴的刻度范围进行重新设定,其调用格式如下:(1)函数axisaxis([xminxmaxyminymaxzminzmax])axis函数功能丰富,常用的用法还有:axisequal纵、横坐标轴采用等长刻度axissquare产生正方形坐标系(缺省为矩形)axisauto使用缺省设置axisoff取消坐标轴axison显示坐标轴例3.3绘制单位圆。MATLAB程序如下:clear;closeall;clct=[0:0.01:2*pi];%定义时间范围x=sin(t);y=cos(t);plot(x,y)axis([-1.51.5-1.51.5])%限定x轴和y轴的显示范围pausegridonaxis('equal')程序运行结果如图3.4所示。图3.4单位圆(2)函数setset(gca,’xtick’,标示向量),set(gca,’ytick’,标示向量),按照标示向量设置x,y轴的刻度标示;set(gca,’xticklabel’,‘字符串|字符串···’),set(gca,’yticklabel’,‘字符串|字符串···’),按照字符串设置x,y轴的刻度标志例3.4给正弦曲线设置刻度标示。MATLAB程序如下:t=0:0.05:7;plot(t,sin(t))set(gca,'xtick',[01.43.1456.28])set(gca,'xticklabel','0|1.4|half|5|one')程序运行结果如图3.5所示。-1.5-1-0.500.511.5-1.5-1-0.500.511.5图3.5设置刻度标示的正弦曲线3.1.3图形的标注、网格及图例说明绘制图形时,可以对图形加上一些说明,添加网格和图例等,基本函数及其调用格式如下:(1)添加图形标题命令titletitle(‘string’),在当前坐标系的顶部加一个文本串string,作为图形的标题。title(‘text’,’Property1’,PropertyValue1,’Property2’,PropertyValue2,…),设置标题名属性。(2)添加坐标轴标志函数xlabel、ylabel、zlabelxlabel(‘string’),ylabel(‘string’),zlabel(‘string’),给当前X轴或Y轴或Z轴标注文本文注。xlabel(‘text’,’Property1’,PropertyValue1,’Property2’,PropertyValue2,…)或ylabel(‘text’,’Property1’,PropertyValue1,’Property2’,PropertyValue2,…)或zlabel(‘text’,’Property1’,PropertyValue1,’Property2’,PropertyValue2,…)对X轴、Y轴、Z轴分别进行属性设置。(3)文本注释函数text,gtexttext(x,y,‘string’),在二维图形(x,y)位置处标注文本注释‘string’text(x,y,z,‘string’),在三维图形(x,y,z)位置处标注文本注释‘string’gtext(‘string’)-用鼠标拖动来确定标注文字‘string’的位置。输入特定的文字用\表示,见表3.2例3.5绘制分段函数曲线并添加图形标注。01.4half5one-1-0.8-0.6-0.4-0.200.20.40.60.818,186,2/564,240,)(xxxxxxxfMATLAB程序如下:clccloseallclearx=0:0.05:10;y=zeros(1,length(x));forn=1:length(x)ifx(n)=8y(n)=1;elseifx(n)=6y(n)=5-x(n)/2elseifx(n)=4y(n)=2elsey(n)=sqrt(x(n))endendplot(x,y)axis([01002.5])title('分段函数曲线');xlabel('x')ylabel('y')text(2,1.3,'y=x^{1/2}');text(4.5,1.9,'y=2');text(7.3,1.5,'y=5-x/2');text(8.5,0.9,'y=1');程序执行结果如图3.6所示。图3.6绘制分段函数曲线并添加图形标注(4)创建图形窗命令figurefigure,打开不同的图形窗口,以便绘制不同的图形figure('PropertyName',PropertyValue,...),创建具有特定属性值的图形窗口figure(h),创建或显示句柄h定义的图形窗口,如果h不是整数,则返回错误。h=figure(...)(5)设置网格线命令gridgridon(off),对当前做标图加上网格线或撤销网格线。若直接调用grid命令即可设置或撤销网格线(6)保持图形窗口内容命令holdholdon(off)保持当前图形窗口内容命令(解除保持)。若直接调用hold命令即可保持或解除保持当前图形窗口内容。例3.6分别绘制正余弦曲线并绘制标题,添加或去除栅格。MATLAB程序如下:closeallclcclear%定义时间范围t=[0:pi/20:9*pi];figure(1)%建立图形窗口1plot(t,sin(t),'r:*')gridon%在所画出的图形坐标中添加栅格,注意用在plot之后text(pi,0,'\leftarrowsin(\pi)','FontSize',18)title('添加栅格的正弦曲线')01234567891000.511.522.5分段函数曲线xyy=x1/2y=2y=5-x/2y=1xlabel('x')ylabel('sint')figure(2)plot(t,cos(t))gridonpausegridoff%删除栅格text(pi,0,'\leftarrowcos(\pi)','FontSize',18)title('去除栅格的余弦曲线')xlabel