您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 电气安装工程 > 第4章 MATLAB绘图的补充
函数f(x)曲线fplot函数则可自适应地对函数进行采样,能更好地反应函数的变化规律。fplot函数格式:fplot(fname,lims,tol)其中fname为函数名,以字符串形式出现,lims为变量取值范围,tol为相对允许误差,其其系统默认值为2e-3。例:fplot(‘sin(x)’,[02*pi],’-+’)fplot(‘[sin(x),cos(x)]’,[02*pi],1e-3,’·’)同时绘制正弦、余弦曲线为绘制f(x)=cos(tan(πx))曲线,可先建立函数文件fct.m,其内容为:functiony=fct(x)y=cos(tan(pi*x));用fplot函数调用fct.m函数,其命令为:fplot(‘fct’,[01],1e-4)函数f(x)曲线特殊坐标图形一、对数坐标图形(一)loglog(x,y)双对数坐标【例】绘制y=|1000sin(4x)|+1的双对数坐标图。程序为:x=[0:0.1:2*pi];y=abs(1000*sin(4*x))+1;loglog(x,y);%双对数坐标绘图命令以X轴为对数重新绘制上述曲线,程序为:x=[0:0.01:2*pi]y=abs(1000*sin(4*x))+1semilogx(x,y);%单对数X轴绘图命令同样,可以以Y轴为对数重新绘制上述曲线,程序为:x=[0:0.01:2*pi]y=abs(1000*sin(4*x))+1semilogy(x,y);%单对数Y轴绘图命令(二)单对数坐标二、极坐标图函数polar(theta,rho)用来绘制极坐标图,theta为极坐标角度,rho为极坐标半径【例】绘制sin(2*θ)*cos(2*θ)的极坐标图,程序为:theta=[0:0.01:2*pi];rho=sin(2*theta).*cos(2*theta);polar(theta,rho);%绘制极坐标图命令title('polarplot');其它图形函数除plot等基本绘图命令外,Matlab系统提供了许多其它特殊绘图函数,这里举一些代表性例子,更详细的信息用户可随时查阅在线帮助,其对应的M-file文件存放在系统\matlab\toolbox\matlab目录下。其它图形函数一、阶梯图形函数stairs(x,y)可以绘制阶梯图形,如下列程序段:x=[-2.5:0.25:2.5];y=exp(-x.*x);stairs(x,y);%绘制阶梯图形命令title('stairsplot');二、条形图形函数bar(x,y)可以绘制条形图形,如下列程序段将绘制条形图形x=[-2.5:0.25:2.5];y=exp(-x.*x);bar(x,y);%绘制条形图命令三、填充图形fill(x,y,’c’)函数用来绘制并填充二维多边图形,x和y为二维多边形顶点坐标向量。字符’c’规定填充颜色,其取值前已叙述。下述程序段绘制一正方形并以黄色填充:其它图形函数x=[01100];%正方形顶点坐标向量y=[00110];fill(x,y,'y');%绘制并以黄色填充正方形图再如:x=[0:0.025:2*pi];y=sin(3*x);fill(x,y,[0.50.30.4]);%颜色向量Matlab系统可用向量表示颜色,通常称其为颜色向量。基本颜色向量用[rgb]表示,即RGB颜色组合;以RGB为基本色,通过r,g,b在0~1范围内的不同取值可以组合出各种颜色。二维绘图函数小结plot二维图形基本函数fplotf(x)函数曲线绘制fill填充二维多边图形polar极坐标图bar条形图loglog双对数坐标图semilogxX轴为对数的坐标图semilogyY轴为对数的坐标图stairs阶梯形图axis设置坐标轴clf清除图形窗口内容close关闭图形窗口figure创建图形窗口grid放置坐标网格线gtext用鼠标放置文本hold保持当前图形窗口内容subplot创建子图text放置文本title放置图形标题xlabel放置X轴坐标标记ylabel放置Y轴坐标标记三维图形一、plot3函数最基本的三维图形函数为plot3,它是将二维函数plot的有关功能扩展到三维空间,用来绘制三维图形。函数格式:plot3(x1,y1,z1,c1,x2,y2,z2,c2,…)其中x1,y1,z1…表示三维坐标向量,c1,c2…表示线形或颜色。函数功能:以向量x,y,z为坐标,绘制三维曲线。【例】绘制三维螺旋曲线,其程序为:t=0:pi/50:10*pi;y1=sin(t),y2=cos(t);plot3(y1,y2,t);title('helix'),text(0,0,0,'origin');xlabel('sin(t)'),ylabel('cos(t)'),zlabel('t');grid;二、mesh函数mesh函数用于绘制三维网格图。在不需要绘制特别精细的三维曲面结构图时,可以通过绘制三维网格图来表示三维曲面。三维曲面的网格图最突出的优点是:它较好地解决了实验数据在三维空间的可视化问题。函数格式:mesh(x,y,z,c)其中x,y控制X和Y轴坐标,矩阵z是由(x,y)求得Z轴坐标,(x,y,z)组成了三维空间的网格点;c用于控制网格点颜色。【例】下列程序绘制三维网格曲面图x=[0:0.15:2*pi];y=[0:0.15:2*pi];z=sin(y')*cos(x);%矩阵相乘mesh(x,y,z);三、surf函数surf用于绘制三维曲面图,各线条之间的补面用颜色填充。surf函数和mesh函数的调用格式一致。函数格式:surf(x,y,z)其中x,y控制X和Y轴坐标,矩阵z是由x,y求得的曲面上Z轴坐标。【例】下列程序绘制三维曲面图形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-Dsurf');四、视点视点位置可由方位角和仰角表示。方位角又称旋转角为视点位置在XY平面上的投影与X轴形成的角度,正值表示逆时针,负值表示顺时针。仰角又称视角为XY平面的上仰或下俯角,正值表示视点在XY平面上方,负值表示视点在XY平面下方。从不同视点绘制三维图形的函数为view。view(az,el)中的az为方位角,el为仰角。通过系统提供的多峰函数peaks的绘制例子,可进一步说明视点对图形的影响,以及view(az,el)函数的使用。【例】不同视角图形p=peaks;%系统提供的多峰函数subplot(2,2,1);mesh(peaks,p);view(-37.5,30);%指定子图1的视点title('azimuth=-37.5,elevation=30')subplot(2,2,2);mesh(peaks,p);view(-17,60);%指定子图2的视点title('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')五、等高线图等高线图可通过函数contour3绘制。【例】多峰函数peaks的等高线图[x,y,z]=peaks(30);contour3(x,y,z,16);xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');title('contour3ofpeaks')图形句柄一、句柄在Matlab系统中,绘图命令产生的每一个部分称为图形对象,系统在创建每一个对象时,都为该对象分配唯一的一个值,称其为句柄,因此句柄就是图形对象标识符。对象、句柄以及图形对象等概念其实质是统一的,系统将每一个对象按树型层次结构组织起来,这些对象包括根对象,通常为计算机屏幕、图形窗口、坐标系统、线条、曲面、文本串、用户界面控制等。根对象可包含一个或多个图形窗口对象,而一个图形窗口对象又可包含一组或多组坐标系子对象,线条、文本等其它对象都是坐标系的子对象。所有创建对象的函数当父对象不存在时,都会自动创建它。计算机屏幕作为根对象自动建立,其句柄值为0。而Hf_f=figure命令则建立图形窗口对象,并返回它的句柄值给变量Hf_f。图形窗口的句柄为一整数,并显示在该窗口的标题栏,其它图形对象的句柄为浮点数,Matlab提供了一系列与句柄操作有关的函数,如gcf、gca等。为便于识别,用大写字母开头的变量表示句柄,如Hf_f等。二、对象属性所有图形对象都具有控制对象显示的属性。这些属性既包括对象的一般信息,如对象类型、对象的父对象及子对象等,也包括对象的一些特定信息,如坐标系对象的刻度等。用户可以获取、设置对象属性,以达到控制对象的目的。当创建一个对象时,系统用一组默认属性值定制对象,用户获取这些属性值,同时也可通过set命令重新设置对象属性。set命令格式为:set(H,’name’,value,…)将图形对象H的name属性设置为value其中H为句柄,name为属性名,value为name的属性值。图形句柄用set命令可以方便地设置图形对象属性,如下列程序段就是通过属性来定制图形。x=[0:0.1:4*pi];H=plot(x,sin(x));%返回正弦曲线句柄Hset(H,'LineStyle','*','LineWidth',0.1);%设置正弦曲线线型与线宽其中'LineStyle'为线型属性,'LineWidth'为线宽属性。利用get(H)命令可以返回当前句柄H对象的属性。键入命令:get(H)系统返回当前图形对象的有关属性:如H=get(0,’CurrentFigure’)则返回根对象的’CurrentFigure’的属性值,即当前图形窗口的句柄,相当于函数gcf。get(gcf,’Children’)则返回当前坐标系对象的句柄;类似的操作用户可在使用Matlab的过程中不断积累。三、句柄应用利用句柄操作的有关函数,用户可以查找、访问图形对象,以达到定制对象属性,改变对象显示效果的目的。x=-pi:pi/20:pi;y=sin(x);z=cos(x);plot(x,y,'r',x,z,'g');Hl_lines=get(gca,'Children');%获取正、余曲线句柄向量Hl_linesfork=1:size(Hl_lines)ifget(Hl_lines(k),'Color')==[010]%[010]为绿颜色向量Hl_green=Hl_lines(k)%返回绿色线条句柄endend
本文标题:第4章 MATLAB绘图的补充
链接地址:https://www.777doc.com/doc-3678330 .html