第4章MATLAB计算的可视化和GUI设计-fanny_第1页
第4章MATLAB计算的可视化和GUI设计-fanny_第2页
第4章MATLAB计算的可视化和GUI设计-fanny_第3页
第4章MATLAB计算的可视化和GUI设计-fanny_第4页
第4章MATLAB计算的可视化和GUI设计-fanny_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章MATLAB计算的可视化和GUI设计4.1二维曲线的绘制4.2MATLAB的特殊图形绘制4.3MATLAB的三维图形绘制4.4图形绘制工具4.5对话框4.6句柄图形4.7用户图形界面设计4.8图形文件转储4.1二维曲线的绘制MATLAB的二维曲线功能很强大,在MATLAB的界面中专门有绘制图形的“PLOTS”面板,主要包括线型图、柱状图、面积图、方向图、极坐标图和散点图,单击下拉箭头如图4.1所示。4.1.1基本绘图命令plot命令是MATLAB中最简单而且使用最广泛的1个绘图命令,用来绘制二维曲线。语法:plot(x) %绘制以x为纵坐标的二维曲线plot(x,y) %绘制以x为横坐标,y为纵坐标的二维曲线1.用plot(x)绘制x向量曲线4.1.1基本绘图命令【例4.1】

用plot(x)命令画直线,如图4.2所示。>>x1=[123]x1=123>>plot(x1)>>x2=[010]x2=010>>plot(x2)4.1.1基本绘图命令2.用plot(x,y)命令绘制向量x和y的曲线若参数x和y都是长度为n的向量,则x、y的长度必须相等,用plot(x,y)命令绘制纵坐标为向量y、横坐标为向量x的曲线。【例4.2】

绘制正弦曲线y=sin(x)和方波曲线,如图4.3所示。>>x1=0:0.1:2*pi;>>y1=sin(x1); %y1为x1的正弦函数>>plot(x1,y1)>>x2=[011223];>>y2=[110011];>>plot(x2,y2)>>axis([0402]) %将坐标轴范围设定为0~4和0~24.1.1基本绘图命令图4.3绘制正弦曲线和方波曲线4.1.1基本绘图命令4.用plot(z)命令绘制复向量曲线plot(z)中的参数z为复向量时,plot(z)和plot(real(z)、imag(z))是等效的,以实部作为横坐标,以虚部作为纵坐标。【例4.4续】

以下程序画出如图4.5(e)所示的曲线。>>z1=x2+i*y1z1=1.0000+1.0000i1.0000+2.0000i1.0000+3.0000i2.0000+4.0000i2.0000+5.0000i2.0000+6.0000i>>plot(z1) %以实部作为横坐标,以虚部作为纵坐标X2Y1???4.1.1基本绘图命令5.用plot(x1,y1,x2,y2,…)命令绘制多条曲线plot命令还可以同时绘制多条曲线,用多个矩阵对为参数,MATLAB自动以不同的颜色绘制不同曲线。每一对矩阵(Xi,Yi)均按照前面的方式解释,不同的矩阵对之间,其维数可以不同。【例4.5】

绘制3条曲线,如图4.6所示。>>x=0:pi/100:2*pi;>>y1=sin(x);>>y2=sin(x+.5);>>y3=sin(x+1);>>plot(x,y1,x,y2,x,y3); %画3条曲线4.1.1基本绘图命令图4.63条曲线4.1.2绘制曲线的一般步骤在MATLAB中,无论是绘制二维还是三维图形,如果要画出相当满意的彩色图形,就要对图形进行各种修饰.1.指定图形窗口本书4.1.1节中介绍的plot命令都是在默认的“FigureNo.1”窗口中绘制图形的,当第2次使用plot命令时,就将第1次绘制的图形覆盖了。因此,如果需要多个图形窗口同时打开时,可以使用figure语句。语法:figure(n) %产生新图形窗口说明:如果该窗口不存在,则产生新图形窗口并设置为当前图形窗口,该窗口名为“FigureNo.n”,而不关闭其他窗口。4.1.3多个图形绘制的方法2.同一窗口多个子图如果需要在同一图形窗口中布置几幅独立的子图,则可以在plot命令前加上subplot命令以便将1个图形窗口划分为多个区域,每个区域1幅子图。语法:subplot(m,n,k) %使mn幅子图中的第k幅成为当前图说明:将图形窗口划分为mn幅子图,k是当前子图的编号,“,”可以省略。子图的序号编排原则是:左上方为第1幅,先向右后向下依次排列,子图彼此之间独立。4.1.3多个图形绘制的方法【例4.6】

用subplot命令画4个子图,如图4.7所示。>>x=0:0.1:2*pi;>>subplot(2,2,1) %分割为2*2个子图,左上方为当前图>>plot(x,sin(x))>>subplot(2,2,2) %右上方为当前图>>plot(x,cos(x))>>subplot(2,2,3) %左下方为当前图>>plot(x,sin(3*x))>>subplot(224) %右下方为当前图,省略逗号>>plot(x,cos(3*x))如果在使用绘图命令之后,想清除图形窗口以绘制其他图形,应使用“clf”命令清除图形窗。>>clf %清除子图4.1.3多个图形绘制的方法图4.74个子图4.1.3多个图形绘制的方法3.同一窗口多次叠绘在当前坐标系中绘图时,每调用1次plot函数,会擦掉图形窗口中已有的图形。为了在1个坐标系中增加新的图形对象,可以用“hold”命令保留原图形对象。语法:holdon %使当前坐标系和图形保留holdoff %使当前坐标系和图形不保留【例4.7】

在同一窗口画出函数sinx在区间[0,2]的曲线和cosx在区间[,]的曲线,如图4.8(a)所示。>>x1=0:0.1:2*pi;>>plot(x1,sin(x1))>>holdon>>x2=pi:.1:pi;>>plot(x2,cos(x2))程序分析:坐标系的范围由0~2转变为~2。4.1.3多个图形绘制的方法4.双纵坐标图在实际应用中常常需要把同一自变量的2个不同量纲,不同数量级的函数量的变化绘制在同一张图上。例如,在同一张图上画出放大器输入、输出电流的时间变化曲线;电压、电流的时间变化曲线;温度、压力的时间响应曲线等。MATLAB使用plotyy命令可以实现在同一图形中使用左、右双纵坐标绘制曲线。语法:plotyy(x1,y1,x2,y2) %以左、右不同纵轴绘制2条曲线说明:左纵轴用于(x1,y1)数据,右纵轴用于(x2,y2)数据以绘制2条曲线。坐标轴的范围、刻度都自动产生。4.1.3多个图形绘制的方法【例4.7续】用plotyy函数实现在同一图形窗口绘制2条曲线,如图4.8(b)所示。>>plotyy(x1,sin(x1),x2,cos(x2))程序分析:plotyy函数用不同颜色绘制2条曲线,纵坐标轴在左右两边,横坐标为~2。4.1.4曲线的线形、颜色和数据点形实际上,plot命令还可以设置曲线的线段类型、颜色和数据点形等,如表4.2所示。

色数据点间连线数据点形类

型符

号类

型符

号类

型符

号黄色品红色(紫色)青色红色绿色蓝色白色黑色y(Yellow)m(Magenta)c(Cyan)r(Red)g(Green)b(Blue)w(White)k(Black)实线(默认)点线点画线虚线:.实点标记圆圈标记叉号形×十字形+星号标记*方块标记□钻石形标记

向下的三角形标记向上的三角形标记向左的三角形标记向右的三角形标记五角星标记☆六连形标记.o×+*sdv^<

>

ph在plot命令中可以通过使用表4.2中由符号组成的字符串,控制所画线的线段类型、颜色和数据点形。语法:plot(x,y,s)4.1.4曲线的线形、颜色和数据点形【例4.8】

用不同的线段类型、颜色和数据点形在同一窗口中画出sinx和cosx曲线,如图4.9所示。>>x=0:0.1:2*pi;>>plot(x,sin(x),'r.') %用红色

点画线画出曲线>>holdon>>plot(x,cos(x),'b:o') %用蓝色

圆圈画出曲线,用点线连接4.1.5设置坐标轴和文字标注1.坐标轴的控制plot命令根据所给的坐标点自动确定坐标轴的范围,用坐标控制命令axis控制坐标轴的特性,表4.3列出了其常用的坐标控制命令。命

令含

义命

令含

义axisauto使用默认设置axisequal纵、横轴采用等长刻度axismanual使当前坐标范围不变axisfill在manual方式下起作用,使坐标充满整个绘图区axisoff取消轴背景axisimage纵、横轴采用等长刻度,且坐标框紧贴数据范围axison使用轴背景axisnormal默认矩形坐标系axisij矩阵式坐标,原点在左上方axissquare产生正方形坐标系axisxy普通直角坐标,原点在左下方axistight把数据范围直接设为坐标范围axis([xmin,xmax,ymin,ymax])设定坐标范围,必须满足xmin<xmax,ymin<ymax,可以取inf或infaxisvis3d保持高、宽比不变,用于三维旋转时避免图形大小变化4.1.5设置坐标轴和文字标注2.分格线使用grid命令显示分格线。语法:gridon %显示分格线gridoff %不显示分格线【例4.9】

在2个子图中使用坐标轴、分格线和坐标框控制,如图4.10所示。>>x=0:0.1:2*pi;>>subplot(2,1,1)>>plot(sin(x),cos(x))>>axisequal %纵、横轴采用等长刻度>>gridon %加分格线>>subplot(2,1,2)>>plot(x,exp(x))>>axis([0,3,0,2]) %改变坐标轴范围4.1.5设置坐标轴和文字标注【例4.9】

>>x=0:0.1:2*pi;>>subplot(2,1,1)>>plot(sin(x),cos(x))>>axisequal %纵、横轴采用等长刻度>>gridon %加分格线>>subplot(2,1,2)>>plot(x,exp(x))>>axis([0,3,0,2])%改变坐标轴范围4.1.5设置坐标轴和文字标注图4.10用坐标轴、分格线和坐标框控制4.1.5设置坐标轴和文字标注3.文字标注图形的文字标注是指在图形中添加标志性的注释,文字标注包括:图名(Title)、坐标轴名(Label)、文字注释(Text)和图例(Legend)。(1)添加图名。title(s) %书写图名说明:s为图名,类型为字符串,可以是英文或中文。(2)添加坐标轴名。xlabel(s) %横坐标轴名ylabel(s) %纵坐标轴名(3)添加图例。legend(s,pos) %在指定位置建立图例legendoff %擦除当前图中的图例说明:参数s是图例中的文字注释,如果有多个注释则可以用's1','s2',…的方式;参数pos是图例在图上位置的指定符,它的取值如表4.4所示。pos取值01234-1图例位置自动取最佳位置右上角(默认)左上角左下角右下角图右侧4.1.5设置坐标轴和文字标注(4)添加文字注释。语法:text(xt,yt,s) %在图形的(xt,yt)坐标处书写文字注释【例4.10】

在图形窗口中添加文字注释,如图4.11所示。>>x=0:0.1:2*pi;>>plot(x,sin(x))>>holdon>>plot(x,cos(x),'ro')>>title('y1=sin(x),y2=cos(x)') %添加标题>>xlabel('x') %添加横坐标名>>legend('sin(x)','cos(x)',4) %在右下角添加图例>>text(pi,sin(pi),'x=\pi') %在pi,sin(pi)处添加文字注释4.1.5设置坐标轴和文字标注图4.11添加图形文字注释4.1.5设置坐标轴和文字标注4.坐标刻度在坐标轴上默认的刻度是自动等距离分隔的,但有些刻度需要特别标注出来,因此需要使用坐标刻度专门标注。通过设置xtick和ytick属性可以划分坐标刻度。通过设置xticklabel和yticklabel属性可以标注坐标刻度。【例4.10续】

在图4.11中将横坐标按照每隔/2进行标识,则图形显示如图4.12所示。>>axis([0,2*pi,-2,2])>>set(gca,'XTick',0:pi/2:2*pi) %横坐标刻度>>set(gca,'XTickLabel',{'0','pi/2','pi','pi3/2','2pi'}) %横坐标标识4.1.5设置坐标轴和文字标注图4.12修改横坐标刻度练习1P29712344.2MATLAB的特殊图形绘制在MATLAB界面中的Workspace窗口中,选择某个向量或矩阵,然后选择工具栏中的“Plot”按钮,则会出现如图4.14所示的plot下拉菜单,菜单中列出了可以绘制的各种特殊图形。4.2.1条形图条形图常用于对统计的数据进行作图,特别适用于少量且离散的数据。绘制条形图的函数如表4.7所示。函

数功

能函

数功

能bar垂直条形图bar3三维垂直条形图barh水平条形图bar3h三维水平条形图语法:bar(x,y,width,'参数') %画条形图bar3(y,z,width,'参数')

%画三维条形图说明:x是横坐标向量,省略时默认值是1∶m,m为y的向量长度;y是纵坐标,可以是向量或矩阵,当y是向量时每个元素对应1个竖条,当y是mn的矩阵时,将画出m组竖条,每组包含n条;

width是竖条的宽度,省略时默认宽度是0.8,如果宽度大于1,则条与条之间将重叠;'参数'可以为grouped(分组式)或stacked(累加式),省略时默认为grouped。bar3命令的格式也相同,y必须是单调增加或减小,省略时为1∶m;'参数'除了grouped和stacked外还有detached(分离式)。4.2.1条形图【例4.13】用条形图表示某年1月份中3日至6日连续4天的温度数据,Y矩阵的各列分别表示平均温度、最高温度和最低温度,如图4.15所示,用条形图和三维条形图分别表示。>>x=3:6;>>y=[5.300013.00000.4000 5.100011.80001.7000 3.70008.10000.6000 1.50007.70004.5000]>>bar(x,y) %画条形图>>bar3(x,y) %画三维条形图4.2.1条形图图4.15条形图和三维条形图4.2.4饼形图饼形图用于显示向量中的每个元素占向量元素总和的百分比,可以用pie和pie3命令分别绘制二维和三维饼形图。语法:pie(x,explode,'label') %画二维饼形图pie3(x,explode,'label') %画三维饼形图说明:x是向量;explode是与x同长度的向量,用来决定是否从饼形图中分离对应的一部分块,非零元素表示该部分需要分离;'label'是用来标注饼形图的字符串数组。4.2.4饼形图【例4.15】

绘制4个季度支出额的饼形图,如图4.18所示。>>y=[200100250400]; %4个季度支出额>>explode=[0010];>>pie(y,explode,{'第1季度','第2季度','第3季度','第4季度'})explode=[0000];缺省explode=[0100];4.2.5离散数据图stem和stem3命令绘制的方法和plot命令相似,但绘制的是离散点的火柴杆图;stairs命令用于绘制阶梯图;scatter命令用于绘制点图,与plot命令相似,但只有数据点。【例4.16】

使用几种绘制离散数据的命令显示

的离散数据,如图4.19所示。>>x=0:0.1:2*pi;>>y=sin(x).*exp(2*x);>>subplot(3,1,1)>>stem(x,y,'filled') %画火柴杆图>>subplot(3,1,2)>>stairs(x,y) %画阶梯图>>subplot(3,1,3)>>scatter(x,y) %画点图4.2.5离散数据图图4.19离散数据图4.3MATLAB的三维图形绘制4.3.1绘制三维线图命令在MATLAB的三维图形命令中plot3最易于理解。plot3是用来绘制三维曲线的,它的使用格式与二维绘图的plot命令很相似。语法:plot3(x,y,z,'s') %绘制三维曲线plot3(x1,y1,z1,'s1',x2,y2,z2,'s2',…) %绘制多条三维曲线说明:若x、y、z是同维向量,则绘制以x、y、z元素为坐标的三维曲线;若X、Y、Z是同维矩阵,则绘制三维曲线的条数等于矩阵的列数。s是指定线型、色彩或数据点形的字符串。4.3.1绘制三维线图命令【例4.20】

三维曲线绘图,如图4.24所示。>>x=0:0.1:20*pi;>>plot3(x,sin(x),cos(x)) %按系统默认设置绘图4.3.2绘制三维网线图和曲面图1.meshgrid命令为了绘制三维立体图形,MATLAB的方法是将x方向划分为m份,将y方向划分为n份,由各划分点分别绘制出平行于坐标轴的直线,则划分出mn个栅格,然后计算出各栅格点对应的f(x,y),绘制出立体曲面和网线图。如果不清楚meshgrid命令产生的输出,则可以用mesh命令查看。

meshgrid命令以x、y向量为基准,产生在xy平面的各栅格点坐标值的矩阵。语法:[X,Y]=meshgrid(x,y)4.3.2绘制三维网线图和曲面图例如,将x(1m)向量和y(1n)向量转换为(nm)的矩阵:>>x=[1234];>>y=[567];>>[xx,yy]=meshgrid(x,y)xx=123412341234yy=5555666677774.3.2绘制三维网线图和曲面图2.三维网线图语法:mesh(z) %画三维网线图mesh(x,y,z,c)说明:若只有参数z,则以Z矩阵的行下标作为x坐标轴,以Z的列下标当做y坐标轴;x、y分别为x、y坐标轴的自变量;当有x、y、z参数时,C是指定各点的用色矩阵,当C省略时默认用色矩阵是z的数据。如果x、y、z、c4个参数都存在,则这四个参数应都是维数相同的矩阵。4.3.2绘制三维网线图和曲面图【例4.20续】

用mesh查看peaks函数的三维网线图,如图4.25所示。>>zz=peaks(29)>>mesh(zz)4.3.2绘制三维网线图和曲面图3.三维曲面图语法:surf(z) %画三维曲面图surf(x,y,z,c)说明:参数设置与mesh命令相同,c也可以省略。

【例4.20续】

用surf查看peaks函数的三维曲面图,如图4.26所示。>>surf(zz)4.3.2绘制三维网线图和曲面图4.其他立体网线图和曲面图立体网线图mesh命令还有几种格式,如meshc命令为立体网状图加等高线;meshz为立体网状图加“围裙”。【例4.20续】

用meshz和meshc观察peaks函数的三维曲面图,如图4.27所示。>>meshz(zz)>>meshc(zz)几种三维画图函数的对比绘制三维线图命令:Plot3三维网线图:MeshMeshzMeshc三维曲面图:Surfsurfl绘制三维曲面图,带阴影surfc绘制三维曲面图,带等高线4.3.3立体图形与图轴的控制1.网格的隐藏

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论