您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > 第五章MATLAB绘图
1第五章MATLAB图形绘制作为一个功能强大的工具软件,Matlab具有很强的图形处理功能,提供了大量的二维、三维图形函数。由于系统采用面向对象的技术和丰富的矩阵运算,所以在图形处理方面即常方便又高效。计算的可视化可以将不直观的数据通过图形来表示,从而发现其中的内在关系。Matlab的图形命令格式简单,可以使用不同的线形,色彩、数据点标记和标注等来修饰.MATLAB的图形都是绘制在MATLAB的图形窗口中的,而所有图形数据可视化的工作也都以图形窗口为主。25.1二维绘图一、二维图形绘制流程二维图形的绘制过程由以下7个部分组成:•准备绘制在MATLAB中的相关函数;•选择图形显示的窗口以及显示区域;•调用相关的绘图指令绘制图形;•设置图形的属性;•设置绘图区域的属性,如对坐标轴起始位置设定,网格线设置等;•为绘制的图形添加标题、轴标签、注释文本等;•打印或导出图形3plot命令是Matlab中最简单最常用的绘图命令,主要用来绘制二维曲线。它的调用格式有以下几种:二、绘图函数plot()plot(x,'s'):①当x是实向量时,则绘制出以该向量元素的下标为横坐标、以该向量元素的值为纵坐标的一条连续曲线;②当x是实矩阵时,则按列绘制出每列元素值相对其下标的曲线。其曲线数等于x的列数;③当x是复矩阵时,则按列分别绘制出以元素实部为横坐标、以元素虚部为纵坐标的多条曲线。s用来设置曲线线型、色彩、数据点标记符号的选项字符串。其设置请参看表5.1,表5.2与表5.3。s可以省略,此时将默认曲线采用实线线型、不同曲线将按表5.2所给出的前7种颜色次序(蓝、绿、红、青、粉红、黄、黑)着色。数据点标记不显示。4线型符号符号含义线型符号符号含义-实线-.点划线:虚线--双划线色彩符号符号含义色彩符号符号含义b蓝色m粉红色g绿色y黄色r红色k黑色c青色w白色表5.1曲线线型符号设置表5.2曲线色彩符号设置5标记符号符号含义标记符号符号含义.实心黑点^上三角符o空心圆圈v下三角符x叉字符左三角符+十字符右三角符*星号符p五角星符s方块符h六角星符d菱形符表5.3曲线数据点标记符号设置square正方形diamond菱形pentagram五角星hexagram六角星6plot(x,y,'s'):①当x,y是同维向量时,则绘制以x为横坐标、y为纵坐标的曲线;②当x是向量,而y是矩阵,则x的长度与矩阵y的行数或列数必须相等。如果x的长度与y的行数相等,则向量x和矩阵y的每列向量对应画一条曲线;如果x的长度与y的列数相等,则向量x和矩阵y的每行向量对应画一条曲线;如果y是方阵,则x与每列y画一条曲线;③当x是矩阵,而y是向量时,规则与上述类似;④当x,y是同维的矩阵时,则以x对应列元素为横坐标,以y对应列元素为纵坐标分别绘制曲线,曲线数等于矩阵的列数。s同上,也可以省略。见例6-1plot(x,y1,x,y2…):以公共向量x为X轴,分别以y1,y2,y3,…为Y轴,在同一幅图内绘制出多条曲线;见例6-2。plot(x1,y1,'s1',x2,y2,'s2',…):1与2…互相之间没有约束关系。见例6-3。7x1=[123];y1=[123;456];plot(x1,y1)%每行一条曲线y2=[12;34;56];plot(x1,y2)%每列一条曲线plot(y1,x1);plot(y2,x1);x2=[111;222];plot(x2,y1)%按列与列对应的方式画曲线例6-1plot(x1,y1)plot(x1,y2)8plot(y1,x1)plot(y2,x1)plot(x2,y1)9例6-2x=0:pi/1000:2*pi;y=sin(2*x+pi/4);plot(x,y,x,y+1,x,y+2)10例6-2x=0:pi/1000:2*pi;y=sin(2*x+pi/4);plot(x,y,x,y+1,x,y+2)11例6-3t=0:pi/20:2*pi;y=sin(t);y1=sin(t-pi/2);y2=sin(t-pi);plot(t,y,'cv-.',t,y1,'--ks',t,y2,'o:m')第一条:青色、下三角、点划线第二条:双划线、黑色、方形第三条:圆圈、虚线、粉红12若不要将绘制的曲线点连接起来,则使用plot函数时不要指定线型,仅指定数据点标记选项和色彩选项。t=0:pi/20:2*pi;y=sin(t);y1=sin(t-pi/2);y2=sin(t-pi);plot(t,y,'cv',t,y1,'ks',t,y2,'om')13在绘制图形的同时,可以对图形加上一些说明,如图形名称、图形某一部分的含义、坐标说明等,将这些操作称为添加图形标记。这些函数为:三、图形标注title——给图形加标题,标题将被自动地设置在轴的正中顶部;xlable——给x轴加标注;ylable——给y轴加标注;text——在图形指定位置加标注;其调用格式为:text(x,y,'s'),x和y是文本注释添加的坐标值;gtext——用鼠标将标注加到图形任意位置;gridon(off)——打开、关闭坐标网格线;boxon/off命令控制是加还是不加边框线,不带参数的box命令在两种状态之间进行切换。14例:t=0:0.1:10;y1=sin(t);y2=cos(t);plot(t,y1,'r',t,y2,'b--');x=[1.7*pi;1.6*pi];y=[-0.3;0.8];s=['sin(t)';'cos(t)'];text(x,y,s);title('正弦和余弦曲线');xlabel('时间t')ylabel('正弦、余弦')grid15用户若对坐标系统不满意,可利用axis命令对其重新设定。四、设定坐标轴axis([xminxmaxyminymax])设定最大和最小值axis('auto')将坐标系统返回到自动缺省状态axis('square')将当前图形设置为方形axis('equal')两个坐标因子设成相等axis('off')关闭坐标系统axis('on')显示坐标系统在设置坐标轴的范围时,若将坐标轴取值设定为inf,则表示该坐标轴的范围为自动设定。16图例是对所绘数据曲线的说明(曲线的色彩、线型和数据标记,简要文字说明),给图形加图例命令为legend。该命令把图例放置在图形空白处,用户还可以通过鼠标移动图例,将其放到希望的位置。其调用格式为:legend('图例说明1','图例说明2',…,Pos),其中Pos为把图例放在图形中的位置,“0”自动把其置于最佳位置,“1”使之位于图形右上角(默认);“2”置于图形左上角;“3”置于图形左下角,“4”置于右下角,‘-1’则置于图形外部。可用鼠标拖动其位置。五、添加图例17例:t=0:pi/20:2*pi;y=sin(t);y1=sin(t-pi/2);y2=sin(t-pi);plot(t,y,'cv-.',t,y1,'--ks',t,y2,'o:m')gridonlegend('y=sin(t)','y=sin(t-pi/2)','y=sin(t-pi)')图例所在的位置可以用鼠标任意地移动18有时希望在一个图形窗口中绘制多个图形,则需用到图形分割指令。subplot命令可以将图形窗体划分为多个图形显示区域,每个区域彼此独立。其调用格式为:subplot(m,n,p)六、图形窗口分割该命令将当前图形窗口分成m×n个绘图区,即m行n列的子窗口,且选定第p个区为当前窗口窗口。按从左到右,从上到下的顺序排列。例:在一个图形窗口中同时绘制正弦、余弦、正切、余切曲线。其程序为:x=linspace(0,2*pi,60);y=sin(x);z=cos(x);t=sin(x)./(cos(x)+eps);eps为系统内部常数ct=cos(x)./(sin(x)+eps);19subplot(2,2,1);分成2×2区域且指定1号为活动区plot(x,y);title('sin(x)');axis([02*pi-11]);subplot(2,2,2);plot(x,z);title('cos(x)');axis([02*pi-11]);subplot(2,2,3);plot(x,t);title('tangent(x)');axis([02*pi-4040]);subplot(2,2,4);plot(x,ct);title('cotangent(x)');axis([02*pi-4040]);20需要建立多个图形窗口,绘制并保持每一个窗口的图形,可以使用figure命令。figure(n)——创建窗口函数,n为窗口顺序号。每执行一次figure命令,就创建一个新的图形窗口,该窗口自动为活动窗口,若需要还可以返回该窗口的识别号码,称该号码为句柄。句柄显示在图形窗口的标题栏中,即图形窗口标题。用户可通过句柄激活或关闭某图形窗口,而axis、xlabel、title等许多命令也只对活动窗口有效。例:t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);plot(t,y)—自动出现第一个窗口figure(2)plot(t,y1)——在第二窗口绘图figure(3)plot(t,y2)——在第三窗口绘图七、多图形窗口请自己试着在4个图形窗口中分别绘制正弦、余弦、正切、余切曲线。21八、图形保持若在已存在图形窗口中用plot命令继续添加新的图形内容,可使用图形保持命令hold。发出命令holdon后,图形窗体处于锁定状态,可以向已经存在曲线的图形窗体中增加曲线,即再执行plot命令,在保持原有图形或曲线的基础上,添加新绘制的图形。holdoff——图形窗体处于非锁定状态,其它绘图操作将清除当前图形窗体已经绘制的内容。例:x=linspace(0,2*pi,60);y=sin(x);z=cos(x);plot(x,y,'b');holdon;plot(x,z,'g');axis([02*pi-11]);legend('cos','sin');holdoff22九、特殊坐标绘图函数一般情况下,二维函数图形的坐标都是线性刻度的。在自动控制中广泛使用的Bode图,其横坐标是对数刻度的。在有些场合,又需要用到极坐标。另双y轴在科学研究与工程计算中也是普遍使用的。1、对数坐标图形绘制对数坐标曲线的函数有3个:双对数坐标函数loglog(x,y):x,y轴均为对数坐标。单对数坐标函数①semilogx(x,y):x轴为对数刻度坐标,y轴为线性刻度坐标;②semilogy(x,y):x轴为线性刻度坐标,y轴为对数刻度坐标;23例:使用对数坐标轴系data=1:1000;subplot(2,2,1);loglog(data);gridon;title('LOGLOG(1:1000)');subplot(2,2,2);semilogy(data);gridon;title('SEMILOGY(1:1000)');subplot(2,2,3);semilogx(data);gridon;title('SEMILOGX(1:1000)');243、极坐标图用polar函数绘制极坐标曲线,其调用格式为:polar(theta,rho,s),其中theta为极坐标角度,rho为极坐标半径,s的内容与用法同前plot。4、双y轴图形在数学和工程领域,有时要用到双y轴图。MATLAB中用plotyy函数来绘制双y轴图。其调用格式有以下几种:例:theta=[0:0.01:2*pi];rho=sin(2*theta).*cos(2*theta);polar(theta,rho);title('polarplot');25plotyy(x1,y1,x2,y2):在一个图形窗口中绘制两条曲线,曲线(x1,y1)用左侧的y轴,曲线(x2,y2)用右侧的y轴;plotyy(x1,y1,x2,y2,'fun'):fun用来指定绘图的函数名,如plot,semilogy等,适用于两条曲线相应的函
本文标题:第五章MATLAB绘图
链接地址:https://www.777doc.com/doc-4768820 .html