您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > Matlab笔记二维绘图(直角坐标)007
007.二维绘图(直角坐标)前言:Matlab具有强大的绘图功能,提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形。此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作。这类操作将图形的每个图形元素(如坐标轴、曲线、文字说明等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。——————————————————————二维绘图可以采用不同的坐标系,如直角坐标、极坐标、对数坐标等。一.绘制二维曲线的基本函数1.基本绘图函数——plot()用于绘制二维平面上的直角坐标图,要提供一组x坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。plot(x,y)——x,y为长度相同的向量,存储x坐标和y坐标例1在[0,2]区间,绘制一般曲线/22sin2xyexx=0:pi/100:2*pi;y=2*exp(-0.5*x).*sin(2*pi*x);plot(x,y)运行结果:注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。例2绘制参数方程曲线——星形线:x=acos3t;y=asin3tt=0:0.01:2*pi;x=a.*(cos(t)).^3;y=a.*(sin(t)).^3;plot(x,y);运行结果:例3绘制参数方程曲线——摆线:x=a(t–sint);y=a(1–cost)t=0:0.01:2*pi;x=a.*(t-sin(t));y=a.*(1-cos(t));plot(x,y);运行结果:2.同一坐标图中画多条函数曲线调用格式为:plot(x1,y1,x2,y2,…,xn,yn)例4同一坐标图中画出sinyx,2sinyx,3sinyx三条曲线。x=0:pi/50:2*pi;plot(x,sin(x),x,2*sin(x),x,3*sin(x))运行结果:注:利用plot函数可以直接将矩阵的数据绘制图形(矩阵的每一列数据作为一条曲线),例例5绘制数据矩阵表示的图形A=pascal(5)plot(A)运行结果:A=1111112345136101514102035151535703.图形选项设置线型、颜色和数据点标记符号等线型:-实线:虚线-.点划线--双划线颜色:b蓝色g绿色r红色c青色m品红y黄色k黑色w白色标记符号:.点o圆圈×叉号+加号*星号s方块d菱形p五角星h六角星∨朝下三角符号∧朝上三角符号朝左三角符号朝右三角符号例6用不同的线型和颜色在同一坐标图内绘制曲线/22sin2xyex及其上下包络线:/2/22,2xxyeye【用黑色虚线画出两条包络线,用蓝色双划线画出曲线y,用红色五角星离散标出数据点】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,'k:',x,y2,'b--',x1,y3,'rp');运行结果:4.绘制出具有不同纵坐标标刻度的两个图形——plotyy()两个函数绘制在同一个坐标中(横坐标的标度相同,纵坐标有两个——不同量纲不同数量级),有利于图形数据的对比分析。plotyy(x1,y1,x2,y2)例7绘制两个纵坐标图形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);运行结果:二.绘制图形的辅助操作1.图形标注在绘制图形时,可以对图形加上一些说明,如图形的名称、坐标轴说明以及图形某一部分的含义等,这些操作称为添加图形标注。有关图形标注函数的调用格式为:title(’图形名称’)xlabel(’x轴说明’)ylabel(’y轴说明’)text(x,y,’图形说明’)%在坐标点(x,y)的位置添加“图形说明”legend(’图例1’,’图例2’,…)注:(1)legend函数用于对绘制曲线所用线型、颜色或数据点标记作图例说明(放置在空白处),用户还可以通过鼠标移动图例,将其放到所希望的位置。(2)除legend函数外,其他函数同样适用于三维图形,在三维中z坐标轴说明用zlabel函数。(3)上述函数中的说明文字,除了使用标准的ASCII字符外,还可以使用LaTex格式的控制字符,这样就可以在图形上添加希腊字符,数学符号和公式等内容,受LaTex字符串控制部分要加大括号{}括起来。2.坐标控制在绘制图形时,Matlab可以自动根据要绘制曲线数据的范围选择合适的坐标刻度,使得曲线能够尽可能清晰的显示出来。但是,如果用户对坐标不满意,可以利用axis函数对其重新设定:axis([xminxmaxyminymax])注:绘制出三维图形,需要再加两个参数zmin,zmaxaxis函数其他用法:axisequal:纵横坐标轴采用等长刻度axissquare:产生正方形坐标系(默认为矩形)axisauto:使用默认设置axisoff:取消坐标轴axison:显示坐标轴此外,给坐标加网格线可以用grid命令来控制,gridon/off命令控制画还是不画网格线,不带参数的grid命令在两种之间进行切换。给坐标加边框用box命令控制(用法同grid)例8绘制分段函数,并做适当图形标注,04246()5-/26818xxxfxxxxx=0:0.1:10;y=[];forx0=xifx0=8y=[y,1];%y=1elseifx0=6y=[y,5-x0/2];%y=5-x/2elseifx0=4y=[y,2];%y=2elseifx0=0y=[y,sqrt(x0)];%y=sqrt(x)endendplot(x,y)axis([01002.5])title('分段函数曲线');xlabel('Variablex');ylabel('Variabley');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.图形保持(常用于同一坐标图下同时绘制多条函数曲线)Matlab默认每执行一次绘图命令,就刷新一次当前图形窗口,图形窗口原有图形将不复存在,如果希望在已经存在的图形上再继续添加新的图形,可以使用图形保持命令hold.holdon/off命令是保持原有图形还是刷新原有图形,不带参数的hold命令在两者之间进行切换。4.图形窗口分割(子图)——subplot()Matlab提供了subplot函数用来将当前窗口分割成若干个绘图区,每个区域代表一个独立的子图(使用独立的坐标系),可以通过subplot函数激活某一区为活动区,其绘图命令都是作用于该活动区域。调用格式:subplot(m,n,p)该函数把当前窗口分成m×n个绘图区(m行,n列),按行优先编号。其中第p个区为当前活动区。每一个绘图区允许以不同的坐标系单独绘制图形。例9绘制2×2子图x=0:pi/30:2*pi;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([02*pi-11]);subplot(2,2,3);plot(x,t)title('tg(x)');axis([02*pi-4040]);subplot(2,2,4);plot(x,ct)title('ctg(x)');axis([02*pi-4040]);运行结果:
本文标题:Matlab笔记二维绘图(直角坐标)007
链接地址:https://www.777doc.com/doc-2887709 .html