《MATLAB的可视化功能.ppt》由会员分享,可在线阅读,更多相关《MATLAB的可视化功能.ppt(91页珍藏版)》请在三一办公上搜索。
1、1,第4章 MATLAB的可视化功能,4.1 绘制二维图形,4.2 绘制三维图形,4.3 符号函数图形的绘制,4.4 图形用户界面,2,4.1 绘制二维图形,4.1.1 基本绘图命令,4.1.2 多个图形绘制的方法,4.1.6 特殊二维图形,4.1.3 曲线的线型、颜色和数据点形,4.1.4 设置坐标轴和文字标注,4.1.5 特殊坐标二维图形,3,第4章 MATLAB的可视化功能,4.1 绘制二维图形,4.1.1 基本绘图命令,plot命令是MATLAB中最简单而且使用最广泛的一个绘图命令,用来绘制二维曲线。该命令将各个数据点用直线连接来绘制图形。MATLAB的其它二维绘图命令中的绝大多数是以
2、plot为基础构造的。plot命令打开一个默认的图形窗口,如果已经存在一个图形窗口,plot命令将刷新当前窗口的图形。,4,plot(x):绘制以x为纵坐标的二维曲线。plot(x,y):绘制以x为横坐标、y为纵坐标的 二维曲线。说明:x和y可以是向量或矩阵,plot 命令的基本调用格式,(1)用plot(x)命令绘制x向量曲线,当x是长度为n的数值向量,则坐标系的纵坐标为向量x,横坐标为MATLAB系统根据x向量的元素序号自动生成从1开始的向量。,5,6,7,(2)用plot(x,y)命令绘制向量x和y的曲线,当参数x和y都是长度为n的向量时,x,y的长度必须相等,用plot(x,y)命令绘
3、制纵坐标为向量y,横坐标为向量x的曲线。,(3)用plot(x)命令绘制矩阵x的曲线,当x是一个mn的矩阵,plot(x)命令为矩阵的每列画出一条线,共n条曲线,各曲线自动用不同颜色表示;每条线的横坐标为向量1:m,m是矩阵的行数,绘制方法与向量相同。,8,9,(4)用plot(x,y)命令绘制混合式曲线,如果x是向量,而y是矩阵,则x的长度与矩阵y的行数或列数必须相等,如果x的长度与y的行数相等,则向量x与矩阵y的每列向量对应一条曲线;如果x的长度与y的列数相等,向量x与矩阵y的每行向量对应一条曲线;如果y是方阵,则x和y的行数、列数都相等,将向量x与矩阵y的每列向量画一条曲线。,如果x是矩
4、阵,而y是向量,则y的长度必须等于x的行数或列数,绘制方法与前一种相似。,如果x和y都是矩阵,则大小必须相同,矩阵x的每列和y的每列画一条曲线。,10,11,12,13,(5)用plot(z)命令绘制复向量曲线,plot(z)中的参数z为复向量时,plot(z)和 plot(real(z),imag(z)是等效的,以实部为横坐标,虚部为纵坐标。,(6).用plot(x1,y1,x2,y2,)命令绘制多条曲线,plot命令还可以同时绘制多条曲线,用多个矩阵对为参数,MATLAB自动以不同的颜色绘制不同曲线。每一对矩阵(xi,yi)均按照前面的方式解释,不同的矩阵对之间,其维数可以不同。,14,1
5、5,4.1.2 多个图形绘制的方法,(1)指定图形窗口,使用figure语句可以同时打开多个图形窗口,其调用格式为:figure(n):产生新图形窗口。说明:如果该窗口不存在,则产生新图形窗口并设置为当前图形窗口,该窗口名为“Figure No.n”,而不关闭其他窗口。,16,自动出现第一个窗口,在第二个窗口绘图,在第三个窗口绘图,17,(2)同一窗口多个子图,subplot命令可将一个图形窗口划分为多个区域,每个区域一幅子图。其调用格式为:subplot(m,n,k):使幅子图中的第k幅成为当 前图。说明:将图形窗口划分为mn幅子图,k是当前子图的编号,“,”可以省略。子图的序号编排原则是:
6、左上方为第1幅,先向右后向下依次排列,子图彼此之间独立。,18,19,如果在使用绘图命令之后,想清除图形窗口画其他图形,应使用“clf”命令清图形窗。该命令的执行结果是原图形窗口还在,但窗口中的图形被清除了。,20,(3)同一窗口多次叠绘,为了在一个坐标系中增加新的图形对象,可以用“hold”命令来保留原图形对象。其调用格式为:hold on使当前坐标系和图形保留hold off使当前坐标系和图形不保留hold在以上两个命令间切换说明:在设置了“hold on”后,如果画多个图形对象,则在生成新的图形时保留当前坐标系中存在的图形对象,MATLAB会根据新图形的大小,重新改变坐标系的比例。,21
7、,22,(4)双纵坐标图,MATLAB使用plotyy命令可以实现在同一图形中使用左、右双纵轴来绘制曲线。其调用格式为:plotyy(x1,y1,x2,y2)以左、右不同纵轴绘制两条曲线说明:左纵轴用于(x1,y1)数据,右纵轴用(x2,y2)数据来绘制两条曲线。坐标轴的范围、刻度都自动产生。,23,24,4.1.3 曲线的线型、颜色和数据点形,表4-1 颜色控制符,25,表4-2 线型控制符,表4-3 数据点形控制符,26,在plot命令中可以使用上面三个表中的符号组成的字符串来控制所画线的线型、颜色和数据点型。其调用格式如下:plot(x,y,s)说明:x为横坐标矩阵,y为纵坐标矩阵,s为
8、类型说明字符串参数;s字符串可以是线型、颜色和数据点形3种类型的符号之一,也可以是3种类型符号的组合。,27,表明图形的横纵坐标为t,x,曲线颜色为黑色,线型为点连线,数据点用圆圈标出。,28,29,4.1.4 设置坐标轴和文字标注,(1)坐标轴的控制,坐标控制命令axis可用来控制坐标的特性,表4-4列出其常用控制命令。表中最常用的命令是:axis(xmin,xmax,ymin,ymax)该命令在使用时应注意,必须满足xminxmax,yminymax,这四个数值可以取inf或inf。,30,31,(2)网格线控制,设置或取消网络线需要使用网格线控制命令grid。其调用格式如下:grid o
9、n显示网格线grid off不显示网格线grid在以上两个命令间切换说明:不显示网格线是 MATLAB 的默认设置。网格线的疏密取决于坐标刻度,如果要改变网格线的疏密,必须先定义坐标刻度。,32,33,(3).文字标注,添加图名title(字符串)书写图名,字符串可以是英文或中文。添加坐标轴名xlabel(字符串)横坐标轴名ylabel(字符串)纵坐标轴名,34,35,设置坐标刻度标示set(gca,xtick,标示向量)set(gca,ytick,标示向量)set(gca,xticklabel,字符串|字符串)set(gca,yticklabel,字符串|字符串)说明:前两种格式是按照标示向
10、量设置 x,y 轴的刻度标示,后两种格式是按照字符串设置 x,y 轴的刻度标示。,Gca:Get current axes handle,36,37,添加图例legend(s,pos)在指定位置建立图例legend off擦除当前图中的图例说明:参数s是图例中的文字注释,为字符串。如果多个注释,则可以用s1,s2,的方式;参数pos是图例在图上位置的指定符,它的取值如P99表4-5所示。,38,表4-5 pos 取值所对应的图例位置,legend(s,pos)在指定位置建立图例legend off擦除当前图中的图例,用legend命令在图形窗口中产生图例后,还可以用鼠标对其进行拖拉操作,将图例
11、拖到满意的位置。,39,40,41,添加文字注释text(xt,yt,s)在图形的(xt,yt)坐标处书写文字注释gtext(s)用鼠标在特定处标注文字注释说明:s 表示文字注释,为字符串。输入特定的文字(如希腊字符、数学符号等)需要用反斜杠()开头,用法如表4-6 所示。,42,表4-6 常用特殊字符,43,44,45,4.1.5 特殊坐标二维图形,(1)对数坐标图形,semilogx(x,y,参数)绘制半对数坐标图形,其x轴取以10为底的对数坐标,y轴为线性坐标。semilogy(x,y,参数)绘制半对数坐标图形,其y轴取以10为底的对数坐标,x轴为线性坐标。loglog(x,y,参数)绘
12、制x,y轴都取以10为底的对数坐标图形。,46,47,(2)极坐标图形,polar(theta,radius,参数):绘制相角为theta,半径为radius的极坐标图形。,48,4.1.6 特殊二维图形,(1)条形图,bar(x,y,width,参数):绘制垂直方向的条形图barh(x,y,width,参数):绘制水平方向的条形图说明:x是横坐标向量,省略时默认值是1:m,m为y的向量长度;y是纵坐标,可以是向量或矩阵,当是向量时每个元素对应一个竖条,当是mn的矩阵时,将画出m组竖条,每组包含n条;width是竖条的宽度,省略时默认宽度是0.8,如果宽度大于1,则条与条之间将重叠;参数有gr
13、ouped或 group(分组式)和stacked或stack(累加式),省略时默认为grouped或group。,49,50,(2).直方图,hist(y,m)统计每段的元素个数,并画出直方图hist(y,x)说明:m是分段的个数,省略时默认为10;x是向量,用于指定所分每个数据段的中间值;y可以是向量或矩阵,如果是矩阵则按列分段。,51,52,53,(3)饼图,pie(x,explode,label)说明:x是向量;explode是与x 同长度的向量,用来表示某元素对应的扇形图是否从整个饼图中分离出来,非0元素表示该部分需要分离;label 是用来标注饼图的字符串数组,若该数组省略则默认显
14、示各部分所占总体的百分比。,54,55,(4)阶梯图,stairs(x,y)说明:x和y均为向量,该命令绘制以向量x的各个对应元素为横坐标,以y 向量的各个对应元素为纵坐标的阶梯图;若两个向量中的一个省略即只有一个向量,则表示绘制以该向量的序号为横坐标,以该向量的各个元素为纵坐标的阶梯图,56,57,58,59,4.2 绘制三维图形,4.2.1 基本三维图形,plot3(x,y,z,s)绘制三维曲线plot3(x1,y1,z1,s1,x2,y2,z2,s2,)绘制多条三维曲线说明:当x,y,z是同维向量时,则绘制以x,y,z元素为坐标的三维曲线;当x,y,z是同维矩阵时,则绘制三维曲线的条数等
15、于矩阵的列数。s是指定线型、颜色、数据点型的字符串。其功能和使用方法类似于绘制二维图形的plot命令。,60,61,4.2.2 三维图形的修饰与控制,62,4.2.3 绘制三维网线图和曲面图,三维网线图和曲面图是三维立体图形,MATLAB 提供了 mesh 命令绘制三维网线图,surf 命令绘制三维曲面图,这两个命令都能用不同的颜色表示不同的高度。三维立体图形的绘制比 plot3 命令稍微复杂,在数据准备上需要使用 meshgrid 命令构成 xy 平面上的自变量栅格点阵。,63,(1)meshgrid 命令,meshgrid命令是以x,y向量为基准,来产生在xy平面的栅格点坐标值的矩阵。X,
16、Y=meshgrid(x,y)说明:X,Y是栅格点的坐标,为矩阵;x,y为向量。当两向量取值相同时,可省略一个参数。,64,65,(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,c四个参数都有,则应该都是维数相同的矩阵。,66,67,(3)三维曲面图,surf(z)或 surf(x,y,z,c),68,4.3 符号函数图形的绘制,4.3.1 fplot 命令,fplot(f,x
17、min,xmax)说明:该命令用来绘制给定函数在区间 xmin,xmax 内的变化图形,f 为一元函数表达式,为字符型数据,不可为符号对象。,69,70,fplot命令只支持字符定义方式,而不支持符号定义方式。,71,4.3.2 ezplot 命令,fplot命令只能绘制一元函数的图形,而ezplot命令却可以绘制二元函数的图形。其调用格式为:ezplot(f,xmin,xmax,ymin,ymax,fig)绘制符号表达式的图形说明:f符号表达式或字符表达式,若f=f(x,y),则该命令在图形窗口中绘制符号方程f(x,y)=0的图形;xmin,xmax,ymin,ymax是绘图的自变量和f取值
18、范围,省略时都默认为-2,2;fig是指定的图形窗口,省略时默认为当前图形窗口。,72,73,74,4.3.3 符号函数的其他绘图命令,表4-7 符号函数的绘图命令,75,常用的图形屏幕控制命令,76,4.4 图形用户界面,77,4.4 图形用户界面,MATLAB自身提供了一种图形用户界面(Graphical User Interfaces,GUI)技术。GUI是由窗口、光标、按钮等对象构成的。通过一定的方法选择、激活这些图形对象,使计算机产生某种动作和变化,实现计算、绘图等功能。,78,4.4.1 GUI设计工具,在MATLAB命令窗口调用GUI设计工作台的指令guide。它的调用格式如下:
19、guide 打开空白设计工作台;guide FN 打开装有FN的工作台,FN是已经存在的图形用户界面文件名。,79,常见控件功能:,81,用户控制对象的创建 建立控制对象并设置基本属性 设置对齐方式 编写回调程序GUI 设计工具集窗口的左侧便是各种类型的控制对象按钮栏。单击要添加的控制对象按钮,在图形窗口中“画出”所需要的位置和大小即可。例:创建一个图形用户界面,使之包含静态文本、无线电选择开关、双选按键和控制对象区域框四种控制对象。,第4章 Matlab的图形功能,82,第4章 Matlab的图形功能,83,第4章 Matlab的图形功能,%-function varargout=radio
20、button1_Callback(h,eventdata,handles,varargin)if get(gcbo,value)%获得当前对象属性值hr1=findobj(Tag,radiobutton1);hr2=findobj(Tag,radiobutton2);ht=findobj(Tag,title)set(ht,fontangle,normal);set(hr1,value,1);set(hr2,value,0);end%-function varargout=radiobutton2_Callback(h,eventdata,handles,varargin)if get(gcbo
21、,value)%获得当前对象属性值hr1=findobj(Tag,radiobutton1);hr2=findobj(Tag,radiobutton2);ht=findobj(Tag,title)set(ht,fontangle,italic);set(hr1,value,0);set(hr2,value,1);end,84,%-function varargout=pushbutton1_Callback(h,eventdata,handles,varargin)grid;%-function varargout=axes1_CreateFcn(h,eventdata,handles,varargin)t=0:pi/50:2*pi;y=sin(t);plot(t,y);axis(0 2*pi-1 1);,第4章 Matlab的图形功能,85,本节到此结束,谢谢!,86,87,88,当 plot(x,y)的参数x或y中只有一个是复变量,则MATLAB会忽略复变量的虚部。,89,90,91,