第四讲绘图功能精选文档.ppt
第四讲绘图功能本讲稿第一页,共三十五页l作为一个功能强大的工具软件,Matlab具有很强的图形处理功能,提供了大量的二维、三维图形函数。由于系统采用面向对象的技术和丰富的矩阵运算,所以在图形处理方面即常方便又高效。本讲稿第二页,共三十五页4.1 二维图形二维图形l一、一、plot函数函数l函数格式:plot(x,y)其中x和y为坐标向量l函数功能:以向量x、y为轴,绘制曲线。l【例例1 1】在区间0X2内,绘制正弦曲线Y=SIN(X),其程序为:x=0:pi/100:2*pi;y=sin(x);plot(x,y)本讲稿第三页,共三十五页l【例例2 2】同时绘制正、余弦两条曲线Y1=SIN(X)和Y2=COS(X),其程序为:x=0:pi/100:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,x,y2)lplot函数还可以为plot(x,y1,x,y2,x,y3,)形式,其功能是以公共向量x为X轴,分别以y1,y2,y3,为Y轴,在同一幅图内绘制出多条曲线。4.1 二维图形一、一、plot函数函数本讲稿第四页,共三十五页l(一)线型与颜色(一)线型与颜色l格式:格式:plot(x,y1,cs,.)l其中c表示颜色,s表示线型。4.1 二维图形一、一、plot函数函数【例3】用不同线型和颜色重新绘制例4.2图形,其程序为:x=0:pi/100:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,go,x,y2,b-.)其中参数go和b-.表示图形的颜色和线型。g表示绿色,o表示图形线型为圆圈;b表示蓝色,-.表示图形线型为点划线。本讲稿第五页,共三十五页l(二)图形标记(二)图形标记l在绘制图形的同时,可以对图形加上一些说明,如图形名称、图形某一部分的含义、坐标说明等,将这些操作称为添加图形标记。ltitle(加图形标题);lxlabel(加X轴标记);lylabel(加Y轴标记);ltext(X,Y,添加文本);4.1 二维图形一、一、plot函数函数本讲稿第六页,共三十五页l(三)设定坐标轴(三)设定坐标轴l用户若对坐标系统不满意,可利用axis命令对其重新设定。laxis(xmin xmax ymin ymax)设定最大和最小值laxis(auto)将坐标系统返回到自动缺省状态laxis(square)将当前图形设置为方形laxis(equal)两个坐标因子设成相等laxis(off)关闭坐标系统laxis(on)显示坐标系统4.1 二维图形一、一、plot函数函数本讲稿第七页,共三十五页l【例例4 4】在坐标范围0X2,-2Y2内重新绘制正弦曲线,其程序为:x=linspace(0,2*pi,60);生成含有60个数据元素的向量Xy=sin(x);plot(x,y);axis(0 2*pi-2 2);设定坐标轴范围4.1 二维图形一、一、plot函数函数本讲稿第八页,共三十五页l(四)加图例(四)加图例l给图形加图例命令为legend。该命令把图例放置在图形空白处,用户还可以通过鼠标移动图例,将其放到希望的位置。l格式:legend(图例说明图例说明,图例说明图例说明);4.1 二维图形一、一、plot函数函数【例例5 5】为正弦、余弦曲线增加图例,其程序为:x=0:pi/100:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,x,y2,-);legend(sin(x),cos(x);本讲稿第九页,共三十五页l(一)(一)subplot(m,n,p)l该命令将当前图形窗口分成mn个绘图区,即每行n个,共m行,区号按行优先编号,且选定第p个区为当前活动区。4.1 二维图形二、subplot函数本讲稿第十页,共三十五页l【例6】在一个图形窗口中同时绘制正弦、余弦、正切、余切曲线,程序为:lx=linspace(0,2*pi,60);ly=sin(x);lz=cos(x);lt=sin(x)./(cos(x)+eps);eps为系统内部常数为系统内部常数lct=cos(x)./(sin(x)+eps);lsubplot(2,2,1);分成分成22区域且指定区域且指定1号为活动区号为活动区lplot(x,y);ltitle(sin(x);laxis(0 2*pi-1 1);lsubplot(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);4.1 二维图形二、二、subplot函数函数本讲稿第十一页,共三十五页l(二)多图形窗口(二)多图形窗口l需要建立多个图形窗口,绘制并保持每一个窗口的图形,可以使用figure命令。l每执行一次figure命令,就创建一个新的图形窗口,该窗口自动为活动窗口,若需要还可以返回该窗口的识别号码,称该号码为句柄。句柄显示在图形窗口的标题栏中,即图形窗口标题。用户可通过句柄激活或关闭某图形窗口,而axis、xlabel、title等许多命令也只对活动窗口有效。4.1 二维图形二、二、subplot函数函数本讲稿第十二页,共三十五页l重新绘制上例4个图形,程序变动后如下:lx=linspace(0,2*pi,60);ly=sin(x);lz=cos(x);lt=sin(x)./(cos(x)+eps);lct=cos(x)./(sin(x)+eps);lH1=figure;创建新窗口并返回句柄到变量创建新窗口并返回句柄到变量H1lplot(x,y);绘制图形并设置有关属性绘制图形并设置有关属性ltitle(sin(x);laxis(0 2*pi-1 1);lH2=figure;创建第二个窗口并返回句柄到变量创建第二个窗口并返回句柄到变量H2lplot(x,z);绘制图形并设置有关属性绘制图形并设置有关属性ltitle(cos(x);axis(0 2*pi-1 1);H3=figure;同上同上plot(x,t);title(tangent(x);axis(0 2*pi-40 40);H4=figure;同上同上plot(x,ct);title(cotangent(x);axis(0 2*pi-40 40);4.1 二维图形二、二、subplot函数函数本讲稿第十三页,共三十五页l(三)(三)hold命令命令l若在已存在图形窗口中用plot命令继续添加新的图形内容,可使用图形保持命令hold。发出命令hold on后,再执行plot命令,在保持原有图形或曲线的基础上,添加新绘制的图形。4.1 二维图形二、二、subplot函数函数本讲稿第十四页,共三十五页l阅读如下程序:lx=linspace(0,2*pi,60);ly=sin(x);lz=cos(x);lplot(x,y,b);绘制正弦曲线lhold on;设置图形保持状态lplot(x,z,g);保持正弦曲线同时绘制余弦曲线laxis(0 2*pi-1 1);llegend(cos,sin);lhold off 关闭图形保持4.1 二维图形二、二、subplot函数函数本讲稿第十五页,共三十五页l三、函数f(x)曲线lfplot函数则可自适应地对函数进行采样,能更好地反应函数的变化规律。lfplot函数格式:fplot(fname,lims,tol)l其中fname为函数名,以字符串形式出现,lims为变量取值范围,tol为相对允许误差,其其系统默认值为2e-3。l例:fplot(sin(x),0 2*pi,-+)lfplot(sin(x),cos(x),0 2*pi,1e-3,)同时绘制正弦、余弦曲线4.1 二维图形本讲稿第十六页,共三十五页l为绘制f(x)=cos(tan(x)曲线,可先建立函数文件fct.m,其内容为:function y=fct(x)y=cos(tan(pi*x);用fplot函数调用fct.m函数,其命令为:fplot(fct,0 1,1e-4)4.1 二维图形三、三、函数函数f(x)曲线曲线本讲稿第十七页,共三十五页4.2 特殊坐标图形特殊坐标图形l一、一、对数坐标图形对数坐标图形l(一)(一)loglog(x,y)双对数坐标双对数坐标l【例例7 7】绘制y=|1000sin(4x)|+1的双对数坐标图。程序为:lx=0:0.1:2*pi;ly=abs(1000*sin(4*x)+1;lloglog(x,y);双对数坐标绘图命令本讲稿第十八页,共三十五页l(二)单对数坐标(二)单对数坐标l以X轴为对数重新绘制上述曲线,程序为:x=0:0.01:2*piy=abs(1000*sin(4*x)+1semilogx(x,y);单对数X轴绘图命令l同样,可以以Y轴为对数重新绘制上述曲线,程序为:x=0:0.01:2*piy=abs(1000*sin(4*x)+1semilogy(x,y);单对数Y轴绘图命令4.2特殊坐标图形本讲稿第十九页,共三十五页l二、二、极坐标图极坐标图函数polar(theta,rho)用来绘制极坐标图,theta为极坐标角度,rho为极坐标半径l【例例8 8】绘制sin(2*)*cos(2*)的极坐标图,程序为:theta=0:0.01:2*pi;rho=sin(2*theta).*cos(2*theta);polar(theta,rho);绘制极坐标图命令title(polar plot);4.2特殊坐标图形本讲稿第二十页,共三十五页4.3 其它图形函数其它图形函数l除plot等基本绘图命令外,Matlab系统提供了许多其它特殊绘图函数,这里举一些代表性例子,更详细的信息用户可随时查阅在线帮助,其对应的M-file文件存放在系统matlabtoolboxmatlab目录下。本讲稿第二十一页,共三十五页4.3 其它图形函数其它图形函数l一、阶梯图形一、阶梯图形l函数stairs(x,y)可以绘制阶梯图形,如下列程序段:x=-2.5:0.25:2.5;y=exp(-x.*x);stairs(x,y);绘制阶梯图形命令title(stairs plot);4.3 其它图形函数本讲稿第二十二页,共三十五页4.3 其它图形函数其它图形函数l二、条形图形二、条形图形l函数bar(x,y)可以绘制条形图形,如下列程序段将绘制条形图形x=-2.5:0.25:2.5;y=exp(-x.*x);bar(x,y);绘制条形图命令4.3 其它图形函数本讲稿第二十三页,共三十五页4.3 其它图形函数其它图形函数l三、填充图形三、填充图形lfill(x,y,c)函数用来绘制并填充二维多边图形,x和y为二维多边形顶点坐标向量。字符 c 规定填充颜色,其取值前已叙述。l下述程序段绘制一正方形并以黄色填充:4.3 其它图形函数本讲稿第二十四页,共三十五页4.3 其它图形函数其它图形函数lx=0 1 1 0 0;正方形顶点坐标向量ly=0 0 1 1 0;lfill(x,y,y);绘制并以黄色填充正方形图l再如:lx=0:0.025:2*pi;ly=sin(3*x);lfill(x,y,0.5 0.3 0.4);颜色向量lMatlab系统可用向量表示颜色,通常称其为颜色向量。基本颜色向量用r g b表示,即RGB颜色组合;以RGB为基本色,通过 r,g,b在01范围内的不同取值可以组合出各种颜色。4.3 其它图形函数本讲稿第二十五页,共三十五页二维绘图函数小结二维绘图函数小结lplot 二维图形基本函数lfplot f(x)函数曲线绘制lfill 填充二维多边图形lpolar 极坐标图lbar 条形图lloglog 双对数坐标图lsemilogx X轴为对数的坐标图lsemilogy Y轴为对数的坐标图lstairs 阶梯形图laxis 设置坐标轴lclf 清除图形窗口内容lclose 关闭图形窗口figure 创建图形窗口grid 放置坐标网格线gtext 用鼠标放置文本hold 保持当前图形窗口内容subplot 创建子图text 放置文本title 放置图形标题xlabel 放置X轴坐标标记ylabel 放置Y轴坐标标记4.3 其它图形函数本讲稿第二十六页,共三十五页4.4 三维图形三维图形l一、一、plot3函数函数l最基本的三维图形函数为plot3,它是将二维函数plot的有关功能扩展到三维空间,用来绘制三维图形。l函数格式:plot3(x1,y1,z1,c1,x2,y2,z2,c2,)l其中x1,y1,z1表示三维坐标向量,c1,c2表示线形或颜色。l函数功能:以向量x,y,z为坐标,绘制三维曲线。本讲稿第二十七页,共三十五页l【例例9 9】绘制三维螺旋曲线,其程序为:lt=0:pi/50:10*pi;ly1=sin(t),y2=cos(t);lplot3(y1,y2,t);ltitle(helix),text(0,0,0,origin);lxlabel(sin(t),ylabel(cos(t),zlabel(t);lgrid;4.4 三维图形本讲稿第二十八页,共三十五页l二、二、mesh函数函数lmesh函数用于绘制三维网格图。在不需要绘制特别精细的三维曲面结构图时,可以通过绘制三维网格图来表示三维曲面。三维曲面的网格图最突出的优点是:它较好地解决了实验数据在三维空间的可视化问题。l函数格式:mesh(x,y,z,c)l其中x,y控制X和Y轴坐标,矩阵z是由(x,y)求得Z轴坐标,(x,y,z)组成了三维空间的网格点;c用于控制网格点颜色。4.4 三维图形【例10】下列程序绘制三维网格曲面图x=0:0.15:2*pi;y=0:0.15:2*pi;z=sin(y)*cos(x);矩阵相乘mesh(x,y,z);本讲稿第二十九页,共三十五页l三、三、surf函数函数lsurf用于绘制三维曲面图,各线条之间的补面用颜色填充。surf函数和mesh函数的调用格式一致。l函数格式:surf(x,y,z)l其中x,y控制X和Y轴坐标,矩阵z是由x,y求得的曲面上Z轴坐标。4.4 三维图形【例例1111】下列程序绘制三维曲面图形x=0:0.15:2*pi;y=0:0.15:2*pi;z=sin(y)*cos(x);矩阵相乘surf(x,y,z);xlabel(x-axis),ylabel(y-axis),zlabel(z-label);title(3-D surf);本讲稿第三十页,共三十五页l四、视点四、视点l视点位置可由方位角和仰角表示。方位角又称旋转角为视点位置在XY平面上的投影与X轴形成的角度,正值表示逆时针,负值表示顺时针。仰角又称视角为XY平面的上仰或下俯角,正值表示视点在XY平面上方,负值表示视点在XY平面下方。从不同视点绘制三维图形的函数为view。l view(az,el)中的az为方位角,el为仰角。通过系统提供的多峰函数peaks的绘制例子,可进一步说明视点对图形的影响,以及view(az,el)函数的使用。4.4 三维图形本讲稿第三十一页,共三十五页l【例例1212】不同视角图形lp=peaks;系统提供的多峰函数lsubplot(2,2,1);lmesh(peaks,p);lview(-37.5,30);指定子图1的视点ltitle(azimuth=-37.5,elevation=30)lsubplot(2,2,2);lmesh(peaks,p);lview(-17,60);指定子图2的视点ltitle(azimuth=-17,elevation=60)subplot(2,2,3);mesh(peaks,p);view(-90,0);指定子图3的视点title(azimuth=-90,elevation=0)subplot(2,2,4);mesh(peaks,p);view(-7,-10);指定子图4的视点title(azimuth=-7,elevation=-10)4.4 三维图形本讲稿第三十二页,共三十五页l五、等高线图五、等高线图l等高线图可通过函数contour3绘制。l【例例1313】多峰函数peaks的等高线图lx,y,z=peaks(30);lcontour3(x,y,z,16);lxlabel(x-axis),ylabel(y-axis),zlabel(z-axis);ltitle(contour3 of peaks)4.4 三维图形本讲稿第三十三页,共三十五页4.5 图形句柄图形句柄l一、句柄一、句柄l在Matlab系统中,绘图命令产生的每一个部分称为图形对象,系统在创建每一个对象时,都为该对象分配唯一的一个值,称其为句柄,因此句柄就是图形对象标识符。对象、句柄以及图形对象等概念其实质是统一的,系统将每一个对象按树型层次结构组织起来,这些对象包括根对象,通常为计算机屏幕、图形窗口、坐标系统、线条、曲面、文本串、用户界面控制等。本讲稿第三十四页,共三十五页习题四习题四l1在0 2范围内绘制二维曲线图y=sin(x)*cos(5x)。l2在0 2范围内绘制以Y轴为对数的二维曲线图。l y=|1000sin(4x)|+1l3.在6 2范围内用plot和fplot函数分别绘制二维曲线图。l4绘制z=sin(x)*cos(y)的三维网格和三维曲面图,x,y变化范围均为 0 2。本讲稿第三十五页,共三十五页