第二章Matlab绘图2.1离散数据和离散函数的绘图【例】用图形表示离散函数。n=(0:12)';y=1./abs(n-6);plot(n,y,'r*','MarkerSize',20)gridon1)6(ny0246810120.10.20.30.40.50.60.70.80.91点的大小:MarkerSize色彩符号:蓝b品红m绿g黄y红r黑k青c白w标记类型符号:点.五角形p加号+正方形s星号*三角形^菱形dx标记x圆形o2.2二维曲线绘图的基本操作【例】二维曲线绘图基本指令演示。t=(0:pi/50:2*pi)';Y=cos(t);plot(t,Y)再试验plot(t),plot(Y),plot(Y,t),以观察产生图形的不同。plot(x,y):以x为横坐标、y为纵坐标绘制二维图形x,y是同维数的向量;plot(y):相当于x=[1,2,…,length(y)]时情形。绘制多个图形1.plot(x,[y1;y2;…]),x是横坐标向量,[y1;y2;…]是由若干函数的纵坐标拼成的矩阵2.plot(x,y1),holdon,plot(x,y2),holdoff3.plot(x,y1,x,y2,…)4.plotyy两个坐标系,用于绘制不同尺度的函数。【例】二维曲线绘图基本指令演示。t=(0:pi/50:2*pi)';k=0.4:0.1:1;Y=cos(t)*k;plot(t,Y)再试验plot(t),plot(Y),plot(Y,t),以观察产生图形的不同。01234567-1-0.8-0.6-0.4-0.200.20.40.60.81多次叠绘hold:holdon,holdoff【例】利用hold绘制离散信号通过零阶保持器后产生的波形。t=2*pi*(0:20)/20;y=cos(t).*exp(-0.4*t);stem(t,y,'g');holdon;stairs(t,y,'r');holdoff01234567-0.4-0.200.20.40.60.81双纵坐标图plotyy(x1,y1,x2,y2)【例】画出函数和积分在区间上的曲线。clf;dx=0.1;x=0:dx:4;y=x.*sin(x);s=cumtrapz(y)*dx;plotyy(x,y,x,s),text(0.5,0,'\fontsize{14}\ity=xsinx')text(2.5,3.5,['\fontsize{14}\its=',sint,'\fontsize{14}\itxsinxdx'])xxysinxdxxxs0)sin(]4,0[00.511.522.533.54-505y=xsinxs=0xxsinxdx00.511.522.533.54024cumtrapz:求累计积分text:标识内容的位置线型、点形和颜色的控制plot(x,y,‘颜色+线型+点形’)plot(x,y,‘颜色+线型+点形’,x,y,‘颜色+线型+点形’,…)句柄图形和set命令改变属性值,可套用:h=plot(x,y),set(h,‘属性’,属性值,‘属性’,属性值,…)也可用plot(x,y,'属性','属性值')设置图形对象的属性。属性变量和属性值线宽:LineWidth点的大小:MarkerSize线型:LineStyle颜色:color色彩符号:蓝b品红m绿g黄y红r黑k青c白w标记类型符号:点.五角形p加号+正方形s星号*三角形^菱形dx标记x圆形o线类型符号:实线-虚线--点线:点划线-.【例】用图形表示离散函数。n=(0:12)';y=1./abs(n-6);plot(n,y,'r*',…'MarkerSize',20)gridon1)6(ny0246810120.10.20.30.40.50.60.70.80.91例改变绘图的线型和颜色。程序h=plot([0:0.1:2*pi],sin([0:0.1:2*pi]));set(h,'LineWidth',5,'color','red');坐标轴的控制axis指令axis([xminxmaxyminymax]):设定二维图形的x和y坐标的范围;axis([xminxmaxyminymaxzminymax]):设定三维图形的坐标范围;其中xminxxmax,yminyymax,zminzzmax。axis:axison(使用轴背景),axisoff(取消轴背景)axisequal,axisfill,axisimage,axisnormal,axissquare,axistight,axisvis3d【例】用图形表示连续调制波形及其包络线。t=(0:pi/100:pi)';y1=sin(t)*[1,-1];y2=sin(t).*sin(9*t);t3=pi*(0:9)/9;y3=sin(t3).*sin(9*t3);plot(t,y1,'r:',t,y2,'b',t3,y3,'bo')axis([0,pi,-1,1]))9sin()sin(tty00.511.522.53-1-0.8-0.6-0.4-0.200.20.40.60.81分格线和坐标框grid:gridon(画出分格线),gridoff(不画出分格线)box:boxon(坐标呈封闭形式),boxoff(坐标呈开启形式)【例】n=(0:12)';y=1./abs(n-6);Subplot(1,2,1),plot(n,y,'r*','MarkerSize',20),boxonSubplot(1,2,2),plot(n,y,'r*','MarkerSize',20),boxoff文字标注title(‘图形标题’);xlabel(‘x轴名称’);ylabel(‘y轴名称’);zlabel(‘z轴名称’);text(‘说明文字’):创建说明文字;gtext(‘说明文字’):用鼠标在特定位置输入文字。legend(‘说明文字’):创建说明文字;文字标注常用符号:\pi(π);\alpha(α);\beta(β);\leftarrow(左箭头)\rightarrow(右箭头);\bullet(点号)例:clf;x=0:0.05:5;y=sin(x);plot(x,y)xlabel('x'),ylabel('y')legend('y=sin(x)')例:clf;x=0:0.05:5;y=sin(x);plot(x,y)gtext('y=sin(x)')【例】clf;t=0:pi/50:2*pi;y=sin(t);plot(t,y);axis([0,2*pi,-1.2,1.2])text(pi/2,1,'\leftarrow\it{sin(t)}极大值','fontsize',18,'color','r')注:图形中文本的颜色和字号可以改变绘制平面曲线(程序讲解,exp2_1.m)clf,t=0:0.1:3*pi;alpha=0:0.1:3*pi;plot(t,sin(t),'r-');holdon;plot(alpha,3*exp(-0.5*alpha),'k:');xlabel('\it{t(deg)}');ylabel('\it{magnitude}');title('\it{sinewaveand{\it{Ae}}^{-\alpha{\itt}}wave}');【例】采用模型画一组椭圆。th=[0:pi/50:2*pi]';a=[0.5:.5:4.5];X=cos(th)*a;Y=sin(th)*sqrt(25-a.^2);plot(X,Y)axis('equal')xlabel('x'),ylabel('y')title('AsetofEllipses')1252222ayax-6-4-20246-4-3-2-101234xyAsetofEllipses图形窗口的创建和分割subplot(m,n,k)命令。在图形区域中显示多个图形窗口。m为上下分割数,n为左右分割数,k为第k子图编号。【例】用图形表示连续调制波形t1=(0:11)/11*pi;y1=sin(t1).*sin(9*t1);t2=(0:100)/100*pi;y2=sin(t2).*sin(9*t2);subplot(2,2,1),plot(t1,y1,'r.'),axis([0,pi,-1,1]),title('子图(1)')subplot(2,2,2),plot(t2,y2,'r.'),axis([0,pi,-1,1]),title('子图(2)')subplot(2,2,3),plot(t1,y1,t1,y1,'r.')axis([0,pi,-1,1]),title('子图(3)')subplot(2,2,4),plot(t2,y2,'linewidth',4)axis([0,pi,-1,1]),title('子图(4)'))9sin()sin(tty若干有用的指令clf:将图形窗口的全部内容清除。shg:显示图形窗口。figure:打开一个新的图形窗口。figure(n):打开第n个图形窗口cla:将所绘曲线清除并重画坐标轴。close(n):将关闭编号为n的图形窗口,closeall:将关闭所有图形窗口.极坐标绘图:polar(x,y)对数绘图:loglog(x,y)半对数绘图:semilogx(x,y),semilogy(x,y)其它绘图命令【例】clf;t=0:.05:pi+.01;y=sin(3*t).*exp(-0.3*t);polar(t,y)title('polarplot')Gridon【例】clf;t=0.1:.1:3;y=exp(t.*t);semilogy(t,y)gridxlabel('t');ylabel('exp(t.*t)');若干特殊图形x=[1:10];y=[56348110356];subplot(2,3,1),bar(x,y),axis([110111])subplot(2,3,2),hist(y,x),axis([11014])subplot(2,3,3),stem(x,y,'k'),axis([110111])subplot(2,3,4),stairs(x,y,'k'),axis([110111])subplot(2,3,5),x=[130.55];explode=[0001];pie(x,explode)subplot(2,3,6),z=0:0.1:100;x=sin(z);y=cos(z).*10;comet3(x,y,z)交互式图形指令[x,y]=ginput(n):用鼠标从二维图形上获取n个点的数据坐标(x,y).gtext('agr'):用鼠标把字符串agr放置到图形上。legend('agr',pos):在指定位置建立图例。pos取值0,1(缺省值),2,3,4,-1Legendoff:擦出当前图上的图例。2.3三维绘图的基本操作绘制二元函数基本步骤:1.生成二维网格点2.计算函数在网格点上的值3.绘制函数图形xm=[012];ym=[123];[x,y]=meshgrid(xm,ym);meshgrid指令:生成网格点a=-0.98;b=0.98;c=-1;d=1;n=10;x=linspace(a,b,n);y=linspace(c,d,n);[X,Y]=meshgrid(x,y);plot(X,Y,'+')三维绘图指令mesh(X,Y,z):在三维空间中绘出由(X,Y,z)表示的曲面;meshz(X,Y,z):除了具有mesh的功能外,还画出上下高度线,meshc(X,Y,z):除了具有mesh的功能外,还在曲面的下方画出函数z=f(x,y)的等值线图,surf(X,Y,z):也是三维绘图指令,与mesh的区别在于mesh绘出彩色的线,surf绘出彩色的面,【例】用曲面图表现函数clf,x=-4:4;y=x;