1.3绘图与处理1.3.1基本二维图形一、绘制二维曲线的最基本函数1.plot函数plot函数的基本调用格式为:plot(x,y)其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。例1在0≤X≤2区间内,绘制曲线y=2e-0.5xsin(2πx)。程序如下:x=0:pi/100:2*pi;y=2*exp(-0.5*x).*sin(2*pi*x);plot(x,y)说明:(1)当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。(2)当x是向量,y是有一维与x同维的矩阵时,则绘制出多根不同色彩的曲线。曲线条数等于y矩阵的另一维数,x被作为这些曲线共同的横坐标。(3)plot函数最简单的调用格式是只包含一个输入参数:plot(x)。例2某工厂2000年各月总产值(单位:万元)分别为22、60、88、95、56、23、9、10、14、81、56、23,试绘制折线图以显示出该厂总产值的变化情况。程序如下:p=[22,60,88,95,56,23,9,10,14,81,56,23];plot(p)2.含多个输入参数的plot函数含多个输入参数的plot函数调用格式为:plot(x1,y1,x2,y2,…,xn,yn)%其中xi和yi成对出现,该函数将分别按顺序取数据xi与yi进行绘图.3.含选项的plot函数含选项的plot函数调用格式为:plot(x1,y1,选项1,x2,y2,选项2,…,xn,yn,选项n)%按照”选项”要求绘制指定属性的图形.绘制图形线条属性是LineSpec参数来定义的.有如下属性:(1)、线型属性定义符线型定义符线型-实线(默认值)--划线:点线-.点划线(2)、线条宽度属性和颜色属性定义符颜色定义符颜色R(red)红色G(green)绿色b(blue)蓝色y(yellow)黄色k(black)黑色w(white)白色m(magenta)粉红c(cyan)青色(3)、标记类型定义符标记类型定义符标记类型定义符标记类型+加号.实点*星号^上三角形左三角形右三角形v下三角形o(字母)小圆圈x交叉号p正五角星s正方形d菱形h正六角星例3用不同线型和颜色在同一坐标内绘制曲线y=2e-0.5xsin(2πx)及其包络线。程序如下:x=(0:pi/100:2*pi)';y1=2*exp(-0.5*x)*[1,-1];y2=2*exp(-0.5*x).*sin(2*pi*x);x1=(0:12)/2;y3=2*exp(-0.5*x1).*sin(2*pi*x1);plot(x,y1,'g:',x,y2,'b--',x1,y3,'rp');4.双纵坐标函数plotyyplotyy函数能把函数值具有不同量纲、不同数量级的两个函数绘制在同一坐标中。调用格式为:plotyy(x1,y1,x2,y2)其中x1—y1对应一条曲线,x2—y2对应另一条曲线。横坐标的标度相同,纵坐标有两个,左纵坐标用于x1—y1数据对,右纵坐标用于x2—y2数据对。例4用不同标度在同一坐标内绘制曲线y1=e-0.5xsin(2πx)及曲线y2=1.5e-0.1xsin(x)。程序如下:x1=0:pi/100:2*pi;x2=0:pi/100:3*pi;y1=exp(-0.5*x1).*sin(2*pi*x1);y2=1.5*exp(-0.1*x2).*sin(x2);plotyy(x1,y1,x2,y2);5.极坐标图polar函数用来绘制极坐标图,其调用格式为:polar(theta,rho,选项)%根据极坐标极角theta和极径rho绘图,选项的内容与plot函数相似。例如:绘制ρ=sin(2θ)cos(2θ)的极坐标图。程序如下:theta=0:0.01:2*pi;rho=sin(2*theta).*cos(2*theta);polar(theta,rho,'k');6.对数坐标图形MATLAB提供了绘制双对数和单轴对数坐标曲线的函数,调用格式为:loglog(x1,y1,选项1,x2,y2,选项2,…)semilogx(x1,y1,选项1,x2,y2,选项2,…)semilogy(x1,y1,选项1,x2,y2,选项2,…)%semilogx绘制的图形,纵轴采用线性坐标,横轴采用对数坐标;semilogy与其相反。例如:绘制y=10x2的对数坐标图并与直角线性坐标图进行比较。程序如下:x=0:0.1:10;y=10*x.*x;subplot(2,2,1);plot(x,y);title('plot(x,y)');gridon;subplot(2,2,2);semilogx(x,y);title('semilogx(x,y)');gridon;subplot(2,2,3);semilogy(x,y);title('semilogy(x,y)');gridon;subplot(2,2,4);loglog(x,y);title('loglog(x,y)');gridon;二、绘制图形的辅助操作1.图形注释:通过选择图形窗口主菜单Insert下选项或者调用相应的标注函数。title(图形名称)%添加图形标题xlabel(x轴说明)ylabel(y轴说明)text(x,y,图形说明)%添加文本注释,帮助解释数据和图形内容等legend(图例1,图例2,…)%给图形添加图例添加坐标轴标签,用于说明每个轴所代表的意义例如:给图形添加图形标注。程序如下:x=(0:pi/100:2*pi)';y1=2*exp(-0.5*x)*[1,-1];y2=2*exp(-0.5*x).*sin(2*pi*x);x1=(0:12)/2;y3=2*exp(-0.5*x1).*sin(2*pi*x1);plot(x,y1,'g:',x,y2,'b--',x1,y3,'rp');title('曲线及其包络线');%加图形标题xlabel('independentvariableX');%加X轴说明ylabel('independentvariableY');%加Y轴说明text(2.8,0.5,'包络线');%在指定位置添加图形说明text(0.5,0.5,'曲线y');text(1.4,0.1,'离散数据点');legend('包络线','包络线','曲线y','离散数据点')%加图例2.坐标控制①控制坐标属性axis函数的调用格式为:axis([xminxmaxyminymaxzminzmax])指定二维图形x轴和y轴的刻度范围。axis函数功能丰富,常用的用法还有:axisequal纵、横坐标轴采用等长刻度axissquare使各坐标轴长度相同,产生正方形坐标系(缺省为矩形),但刻度增量未必相同axisauto使用缺省设置(为自动刻度)axisoff取消坐标轴axison显示坐标轴②gridon/off命令控制是画还是不画网格线,不带参数的grid命令在两种状态之间进行切换。③boxon/off命令控制是加还是不加边界线,不带参数的box命令在两种状态之间进行切换。例4.6用图形保持功能在同一坐标内绘制曲线y=2e-0.5xsin(2πx)及其包络线,并加网格线。程序如下:x=(0:pi/100:2*pi)';y1=2*exp(-0.5*x)*[1,-1];y2=2*exp(-0.5*x).*sin(2*pi*x);plot(x,y1,'b:');axis([0,2*pi,-2,2]);%设置坐标holdon;%设置图形保持状态plot(x,y2,'k');gridon;%加网格线boxoff;%不加坐标边框holdoff;%关闭图形保持3.图形窗口的分割subplot该函数用于创建与控制多个坐标轴,把当前窗口分成几个矩形部分,不同部分按行方向以数字进行标号。调用格式如下:subplot(m,n,p)%将一个窗口分成m×n个小窗口,在第p个小窗口中创建坐标轴。例如:在一个图形窗口中以子图形式同时绘制正弦、余弦、正切、余切曲线。程序如下:x=linspace(0,2*pi,60);y=sin(x);z=cos(x);t=sin(x)./(cos(x)+eps);ct=cos(x)./(sin(x)+eps);subplot(2,2,1);plot(x,y);title('sin(x)');axis([0,2*pi,-1,1]);subplot(2,2,2);plot(x,z);title('cos(x)');axis([0,2*pi,-1,1]);subplot(2,2,3);plot(x,t);title('tangent(x)');axis([0,2*pi,-40,40]);subplot(2,2,4);plot(x,ct);title('cotangent(x)');axis([0,2*pi,-40,40]);x=linspace(0,2*pi,60);y=sin(x);z=cos(x);t=sin(x)./(cos(x)+eps);ct=cos(x)./(sin(x)+eps);subplot(2,2,1);%选择2×2个区中的1号区stairs(x,y);title('sin(x)-1');axis([0,2*pi,-1,1]);subplot(2,1,2);%选择2×1个区中的2号区stem(x,y);title('sin(x)-2');axis([0,2*pi,-1,1]);subplot(4,4,3);%选择4×4个区中的3号区plot(x,y);title('sin(x)');axis([0,2*pi,-1,1]);subplot(4,4,4);%选择4×4个区中的4号区plot(x,z);title('cos(x)');axis([0,2*pi,-1,1]);subplot(4,4,7);%选择4×4个区中的7号区plot(x,t);title('tangent(x)');axis([0,2*pi,-40,40]);subplot(4,4,8);%选择4×4个区中的8号区plot(x,ct);title('cotangent(x)');axis([0,2*pi,-40,40]);三、绘制二维图形的其他函数1、条形图:用水平条形或垂直条形来表示向量或矩阵中的值.bar(Y)%将Y中的每一个分量绘制成一个条形。若Y为向量,则分别显示每个分量的高度,横坐标为1到length(Y);若Y为矩阵,则对每一行中分量创建的条形进行分组,在分别绘出,横坐标为1到Y矩阵的行数bar(x,Y,选项)%在x指定的位置上绘制出Y中每一个分量的条形,其中x为严格递增向量.如果Y为矩阵,则bar将矩阵分解成几个行向量,在指定的横坐标处分别绘出条形barh(……)%绘制水平条形图,其中输入参数同bar这里的”选项”包括设置条形的相对宽度(默认为0.8)、排列类型(包括’grouped’(为默认)或’stacked’)等例如:绘制数据点的条形图①y=1:9;bar(y)②y=[123;456;789];bar(y)③x=-4:0.4:4;bar(x,exp(-x.^2))④y=round(rand(5,3)*10);subplot(2,1,1)bar(y,'group')subplot(2,1,2)bar(y,2)y=round(rand(5,4)*10);subplot(2,1,1)barh(y,'group')subplot(2,1,2)barh(y,2)2、面积图area该函数根据向量或矩阵中的数据连接成一条或多条曲线,并填充每条曲线下面的面积,其输入参数为向量或矩阵。area(Y)%绘制向量Y的面积图或矩阵Y中每一列元素总和的面积图。area(X,Y)%该函数在X数值处绘制相应的Y数据,从而构成面积图。若X为向量,则length(X)=length(Y)且X必须是单调的;若X为矩阵,则size(X)=size(Y),且X中每一列必须是单调的。例如:根据矩阵绘制面积图y=[153;347;353;761];are