MATLAB70使用详解-第7章数据可视化.ppt

上传人:小飞机 文档编号:5575674 上传时间:2023-07-29 格式:PPT 页数:37 大小:515KB
返回 下载 相关 举报
MATLAB70使用详解-第7章数据可视化.ppt_第1页
第1页 / 共37页
MATLAB70使用详解-第7章数据可视化.ppt_第2页
第2页 / 共37页
MATLAB70使用详解-第7章数据可视化.ppt_第3页
第3页 / 共37页
MATLAB70使用详解-第7章数据可视化.ppt_第4页
第4页 / 共37页
MATLAB70使用详解-第7章数据可视化.ppt_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《MATLAB70使用详解-第7章数据可视化.ppt》由会员分享,可在线阅读,更多相关《MATLAB70使用详解-第7章数据可视化.ppt(37页珍藏版)》请在三一办公上搜索。

1、第7章 数据可视化,本书在第5、6章重点介绍了MATLAB强大的数值计算功能,但抽象的数据对于普通用户来说,往往是晦涩难懂的,针对这一问题,MATLAB为用户提供了更加强大的数据可视化功能,用户可以通过MATLAB的绘图函数和图形编辑窗口方便的绘制二维、三维甚至多维的图形。本章着眼于MATLAB的“高层”图形指令,主要内容包括:绘图步骤、二维和三维图形的创建和参数编辑、图形编辑窗口、图形的打印和输出。有关MATLAB“低层”图形指令,即“句柄图形”的有关内容,本章暂不涉及,详见后续章节。,7.1 绘图步骤,用户在MATLAB 7.0中进行图形绘制,可以利用系统的图形函数,也可以使用系统自带的图

2、形编辑窗口,关于图形编辑窗口的内容,本章后续会专门安排一节讲解,本节主要介绍在MATLAB中用图形函数绘图的一般操作步骤,以绘制一个三角函数的图形为例。,7.2 二维图形的绘制与编辑,二维图形是MATLAB图形的基础,也是应用最广泛的图形类型之一,本节主要讲解二维图形的绘制和编辑,内容包括:使用plot函数命令创建二维图形、图形属性设置、坐标轴属性设置、图形注释、图形叠绘、双纵坐标绘制、多子图绘制及特殊二维图形的绘制。,7.2.1 调用plot函数绘制二维图形,二维绘图函数中最基本的是plot函数,其余函数都是围绕其发展扩充形成的。本小节首先介绍如何调用plot函数来绘制图形。MATLAB中调

3、用plot函数的方式有3种,具体格式、功能及举例如下。1.plot(X,s)如X为实数向量时,MATLAB以X中元素的下标为横坐标,元素值为纵坐标绘制连续曲线。如下绘制实数向量的图形。2.plot(X,Y,s)如X和Y为同维向量,MATLAB以X为横坐标、以Y为纵坐标绘制图形。3.plot(X1,Y1,s,X2,Y2,s,X3,Y3,s,)此种方式与第2种类似,不同的只是同时在图形窗口中绘制多条互不影响的连续曲线。,7.2.2 便捷绘图函数fplot和ezplot,上一小节介绍了二维绘图中最基础的plot函数指令,运用plot指令可以把数值矩阵通过图形表示出来,但当用户不想刻意控制自变量范围和

4、函数值范围,而只是想大致了解数据的图形轮廓,或是用户由于数据资料的不足,不能够掌握数据的细微变化规律和相互联系的时候,如果仍然用plot函数指令绘图就显得不是很方便,而且会出现函数表现力差、失真等情况。对于这个问题,MATLAB提供给了用户两个便捷绘图的函数fplot和ezplot。所谓“便捷”即是用户不需要设置,仅仅让系统内部自动调整自变量的范围和间隔。fplot函数用于绘制由M-文件名或函数句柄定义的函数,而ezplot常用来绘制字符串表达式或符号表达式定义的函数。,7.2.3 设置图形曲线的线型、颜色与数据点型,在上面的内容中,读者已经了解了二维图形的基本绘图步骤和绘图函数,在完成了一个

5、图形的初步绘制后,用户为了使图形更具表现力,更加清晰易读,常常需要对于图形曲线的若干属性进行设置,其中最重要的3个属性是曲线线型、颜色和数据点型。MATLAB 7.0为用户提供了各种不同的曲线元素,让用户可以随心所欲地选择自己需要和喜欢的类型,为了用户尽快掌握MATLAB提供的丰富资源并便于以后的查找,下面分别列出线型、颜色和数据点型的各个选项。,7.2.4 设置坐标轴范围,在绘制某些图形的时候,用户对坐标轴的范围和刻度要求常常比较严格,虽然MATLAB拥有便捷智能的函数和内部自适应设置,但是显示的图形往往仍达不到用户所要求的效果。所以,MATLAB提供给用户一系列坐标轴操作控制指令,使用户可

6、以根据自己的具体需要和爱好,有针对性地调整和设置坐标轴的某些参数。下面首先列出MATLAB中常用的坐标轴操作函数。,7.2.5 设置网格和坐标框,在图形绘制完成后,用户有时需要在图形的背景上添加网格,这样便于数据的精细分析和计算,在MATLAB中,用户可以通过grid on和grid off函数进行网格的添加和删除操作,也可以直接用grid函数改变当前的网格状态,比如当前没有网格显示,那么输入grid函数,图形背景就出现网格。接着上一小节图显示的图形,输入grid指令,按Enter键,则图形添加了网格背景,如图所示。,7.2.6 图形叠绘,MATLAB中允许用户使用plot函数一次绘制多条互相

7、独立的图形,在实际工作中,用户不但需要一次绘制多图,有时还要多次绘制多图,即在已经绘制完成的图形上再次添加或删减图形,对于用户的这种需要,MATLAB提供了hold函数。如果用户首先绘制了一个正弦函数曲线,代码如下。x=-pi:.001:pi;y=sin(x);plot(x,y)得到的正弦曲线,如果用户想在这个图形窗口再显示一条余弦曲线,用来和正弦曲线做对比,那么用户只需要输入hold on函数,接着进行余弦图形的绘制,代码如下。hold on plot(x,cos(x),-r),7.2.7 绘制双Y-坐标图形,在实际工作中,用户经常需要把同一个自变量的两个、甚至多个不同量纲、不同数量级的函数

8、的图形绘制在同一个图形中,如果使用常用的单坐标是不能有效解决诸如此类的问题的,所以MATLAB提供了专门用来绘制双坐标的函数plotyy供用户使用。plotyy函数具体的调用格式及功能如下。plotyy(x1,y1,x2,y2):以左、右不同纵轴绘制x1-y1、x2-y2两条曲线。plotyy(x1,y1,x2,y2,FUN):以左、右不同纵轴绘制x1-y1、x2-y2两条形式由FUN指定的曲线。plotyy(x1,y1,x2,y2,FUN1,FUN2):以左、右不同纵轴绘制x1-y1、x2-y2两条形式分别由FUN1和FUN2指定的曲线。,7.2.8 绘制多子图,前面介绍了用户如何在一个图形

9、中绘制多条曲线,MATLAB也允许用户在一个图形窗口中绘制多个完全独立的子图,并且提供了符合用户习惯的分栏方式。如果用户根据需要把图形窗口分割为mn个子图,那么可以把整个图形窗口看作是mn的二维矩阵,共有子图mn个,分别看成是整图的各个元素,子图的编号从第1到第(mn),第1幅子图是矩阵的第1行第1列的元素,第2幅子图是第1行第2列的元素,依次类推,按每行从左至右,列从上到下的顺序,最后1幅子图是第mn个元素。,7.2.9 图形标识,MATLAB的数据可视化的功能之强大,不仅在于其包容广泛的绘图函数,还体现在其提供给用户丰富的图形标识函数指令,使图形可以更好地说明其代表的数据含义和相互联系,使

10、用户看到图形,就一目了然地明白图形作者想要通过图形表现的重点。在7.1节,本书简单地介绍了MATLAB中的图形标识主要是针对X坐标轴、Y坐标轴、图形标题、图例及字符注释,常见的标识函数和各自功能列表如下。,7.2.10 交互式图形绘制函数,在MATLAB中,除了前面介绍的图形绘制及编辑函数,还有若干与鼠标有关的图形操作函数,本小节介绍常用的两个:ginput和zoom函数。用户完成了图形曲线的绘制后,希望知道某个自变量的函数值,那么使用ginput函数就可以十分方便地通过鼠标来读取图形中任意一点的坐标,其常用调用格式如下:x,y=ginput(n)。鼠标在图形上取n个数据点的坐标值(n为正整数

11、),并保存在x,y中。仍以【例6】绘制的图形为例,如果用户希望取两个极值的坐标,则只需要使用ginput函数,代码如下。x,y=ginput(2),7.3 绘制三维图形,读者在上一节主要了解了MATLAB中二维图形的绘制和设置方法,所涉及的所有元素都是在二维平面上的,事实上,在实际教学、科研和工程应用中,很多用户不仅需要平面范畴的图形说明,有时更希望能借助三维立体空间的图形演示来增强数据的表现力,针对用户的此种需要,MATLAB提供了三维绘图功能。尽管从某种意义上说,三维绘图其实可以看成二维绘图的延伸和发展,很多图形及坐标轴设置的命令可以二、三维通用,但是三维绘图仍有其特殊的绘制函数,并且需要

12、进行二维图形所没有的视角、光照及透明度的设置。图形本节主要介绍三维图形的绘制,而三维图形的编辑将在7.4节详细讲解。,7.3.1 使用plot3函数绘制三维曲线,三维曲线绘制函数plot3与二维曲线绘制函数plot相对应,惟一不同的是,用户需要在plot3函数中输入3个数据参数,此函数的常用调用格式为:plot(X,Y,Z,s)。X、Y和Z是同维向量时,分别以X、Y和Z的元素为x、y和z轴坐标。X、Y和Z是同维矩阵时,分别以X、Y和Z的对应列元素为x、y和z轴坐标,曲线条数等于矩阵的列数。s所代表的意义和设置的标准与二维曲线相同,具体内容参考第7.2.3节,下面举例说明plot3函数的调用方法

13、。,7.3.2 使用mesh函数绘制三维网格图,用户在绘制三维图形时,常需要绘制曲线网格图,MATLAB提供了专门绘制曲线网格图的函数mesh,此函数可以绘制出完整的曲面,其常用的调用格式及功能如下。mesh(Z):分别以矩阵Z的列、行下标作为x、y轴的自变量,进行绘图。绘制一个随机5阶矩阵的曲线网格图,代码如下。x=rand(5);mesh(x)随即生成图形,如图所示。mesh(X,Y,Z):最常用的一般调用格式。mesh(X,Y,Z,C):完整的调用格式,其中C作用为指定图形的着色,C没有指定,系统默认C=Z。,7.3.3 使用surf函数绘制三维曲面图,MATLAB中的surf函数专门用

14、于绘制三维着色曲面图,其调用格式和对数据准备的要求与上一小节的mesh函数相同,仍以图中的图形为例,如果用户用surf函数代替mesh函数来绘制上子图,那么图形如图上子图所示。surf函数也有扩展函数,其中一个是surfc函数,其功能对应surf函数与meshc对应mesh是一样的。如果对图的下子图,用surfc函数代替mesh函数,则图形如图下子图所示。surf函数另外两个常用的扩展函数为surfl和surfnorm函数,surfl函数可以在绘制图形时考虑光照效果,而surfnorm函数则用于计算数据X、Y和Z定义表面的法向量。对图的上下子图分别调用surfl和surfnorm函数,得到如图

15、所示图形。,7.4 编辑三维图形,上一节主要针对三维图形的绘制函数,向读者们讲解了如何调用并且如何扩展使用这些函数。与二维图形一样,在三维图形概貌绘制完成后,用户需要对于图形进行编辑,以增强图形的表现力和易读性,由于三维图形立体显示和多维视角的特殊性,对其的编辑比二维图形显得更加必要。本节主要讲解对三维图形编辑的4个主要方面:视角、颜色、光照和透明设置。,7.4.1 三维图形的视角设置,用户使用三维图形来表示数据的特性和内在联系,目的就在于得到形象的显示,以及获得最佳的视觉效果。在观察三维图形时,为了便于用户得到图形的最佳表现效果,MATLAB提供了给用户可以设置用户观察视角的函数指令view

16、和rotate。view函数的调用格式和具体功能如下。view(az,el)或view(az,el):az代表方位角(Azimuth),el代表俯视角(Elevation),调用此种格式的函数,过用户视点和z轴的平面设为m面,m面与x-y面相交,交线与负y轴交角为方位角“az”;m面上连接视点与坐标原点的直线与x-y面的夹角为俯视角“el”,两个角度的单位都是“度”。此调用格式的view函数功能是设置三维图形观察点的方位角。view(x,y,z):在直角坐标中设置视角的坐标为(x,y,z)。view(2)、view(3):分别使用MATLAB 7.0中默认的二维视角设置(az=0,el=90)

17、和三维视角设置(az=-37.5,el=30)。,7.4.2 三维图形的色彩设置,图形的表现力与色彩使用紧密相关,MATLAB中所有线条的色彩都是通过RGB调和出来的单色,常用色彩的RGB调制标准列表如下。,7.4.3 三维图形的光照设置,为了三维图形的形象逼真,MATLAB不仅在视角和色彩方面提供了精细的设置函数,还考虑到了图形的环境光源设置和自身材料设置方面。本书在7.3.3小节介绍了可以增加图形显示的光照效果的surfl函数,事实上,除了surfl函数,MATLAB还提供给用户其他一些光照设置函数,本节主要向读者介绍常用的3个函数:光照设置函数light、光照模式设置函数lighting

18、和材料反射设置函数material。,7.4.4 三维图形的透视设置,在MATLAB中,用户调用mesh、surf等函数绘制网格曲面图时,系统会默认隐藏重叠的后部网格,如果用户需要了解被遮盖的隐藏网格,可以调用透视函数hidden,其格式和功能如下。hidden on:设置隐藏部分不可视。hidden off:设置隐藏部分可视。,7.4.5 三维图形的透明设置,MATLAB 7.0有设置图形透明度的能力,从某种意义上说,上一小节讲解的透视设置是透明设置的特例,透明设置的功能是利用透明技术揭示图形内部的复杂结构。与色彩,光照一样,透明度是图形的属性之一,MATLAB对于图形透明度的默认设置是所有

19、图形都是完全不透明的。MATLAB定义透明度的范围为:“0”代表全透明,“1”代表完全不透明。任何图形的透明度都可以用0,1之间的数值表示,这个量化的数值称为Alpha。MATLAB任何一个图形窗口都有惟一一个透明度表,并默认其为一个的数组,数组元素在区间内取值,其中首元素为0,末尾元素为1,其他元素按照均匀递增的顺序排列。,7.5 特殊的二、三维图形绘制,在实际教学科研、工程实践中,用户经常需要使用一些特殊图形来记录数据,虽然使用基本的plot函数也可以完成这些图形的绘制,但是由于图形的特殊性,绘制过程会比较烦琐,一般用户甚至难以短时间完成。MATLAB考虑到用户绘制特殊图形的需求,特别提供

20、了若干函数。由于同类型的二维、三维特殊图形绘制函数大多类似,并且常可以通用,所以本节把它们结合在一起,向读者介绍其功能和调用方法,主要介绍的特殊图形包括:区域图、条形图、饼状图、柱状图、离散图、矢量图及等高线图。,7.5.1 调用bar函数绘制条形图,MATLAB中提供了条形图绘制函数bar,用来表示向量和矩阵中的值,函数bar有4种,分别是:bar、barh、bar3和bar3h。常用函数bar的调用格式和功能如下。bar(y):绘制向量y的每一个元素。bar(x,y):在指定x坐标轴上绘制y,其中参数x必是严格递增的向量;如果y为矩阵,则把矩阵分解成n个行向量,分别在指定坐标处绘制。bar

21、(,width):width设置条形相对宽度和组内条形的间距。如果默认值为0.8,组内条形有微小间距;如果width为1,则组内条形之间没有间距。bar(,style):style设置条形的类型,如果选择默为“group”,则显示m组,每组n条的条形图形,m和n分别是矩阵y的行列数;如果选择“stack”,则绘制累积直条图。,7.5.2 调用area函数绘制区域图,MATLAB中的区域绘图函数area用来绘制二维的面积图,调用此函数在图形窗口中绘制多条曲线,从第二条开始的每条曲线都以前面的曲线作为“基线”,再取数值绘制而成。常用area函数的调用格式和功能如下。area(y):最常见调用格式。

22、以向量y的下标为横坐标,y的元素值为纵坐标。area(x,y):如果x、y都是向量时,绘图机理和plot函数类似;如果x为向量,y为矩阵,则以向量x为横坐标,以矩阵y的元素的累积值作为纵坐标绘制图形。area(,basevalue):basevalue代表绘图的基准线值,此值只可以取标量,如果以x坐标轴为绘制基准,则basevalue值为0。,7.5.3 调用pie函数绘制饼状图,当用户需要于观察和分析不同子类数据在总数中所占分额及相互之间的大小对比时,可以使用MATLAB中提供的饼形绘图函数pie来绘制饼状图。饼状图绘制函数有pie和pie3,分别绘制二维和三维饼状图,pie函数的调用格式和

23、功能如下:pie(x):绘制向量x的饼状图,x中每一个元素为饼中的一个扇形。pie(x,explode):explode代表与x同维的矩阵,explode中非0元素对应的x中的元素“外突”,方向为扇形圆弧外法线方向。pie(,labels):labels代表各个扇形的标签。,7.5.4 调用hist函数绘制柱状图,MATLAB中,与bar函数有点类似,用户经常需要用柱状图来表示数据的分布,此时就要用到绘制二维柱状图hist函数和rose函数。调用hist函数,所有向量y的元素或者矩阵y的列向量中的元素,系统按照数值范围来分组,每组作为一个条形进行显示,x轴反映了数据y中元素的数值范围,y轴反映

24、了每组元素的个数。hist函数的调用格式和功能如下。hist(y):如果y是向量,则把其中元素放入10个条目中,且返回每条中的元素个数;如果y为矩阵,则分别对每列进行处理,显示多组条形。hist(y,x):向量x的元素个数为n,则y的元素放入n个由元素指定位置为中心的条目中。hist(y,nbins):标量nbins设置条目的数目。n,xout=hist():返回向量n及向量xout,其中向量xout包含频率计数与条目的位置,用户也可以使用bar(xout,n)绘制条形直方图。,7.5.5 调用stem函数绘制离散数据杆状图,离散数据杆状图主要用来表示离散数据的数据特性和内在联系,在MATLA

25、B中,如果调用plot函数对于离散数据绘图,那么系统默认把若干离散的数据点用直线连接,但是用户有时并不希望看到这种连续的图形,这时,最好的方法就是使用stem函数代替plot函数绘图。stem函数用圆点表示每个数据点,再用线段把圆点和基准线连接,图形类似火柴棒,所以又称stem函数图形为火柴杆图。stem函数的调用格式和功能如下:stem(y):可以理解成绘制离散点的“plot(y)”函数。stem(x,y):可以理解成绘制离散点的“plot(x,y)”函数。stem(,Linespec):Linespec代表直线属性设置参量。stem(,fill):改变数据点显示的空、实状态。,7.5.6

26、绘制方向和速度矢量图,本节综合介绍3个函数:compass、feather和quiver函数,之所以把这3个函数放在一小节进行讲解,因为它们都是用于绘制方向和速度矢量图形的函数,3个函数的功能如表所示。,7.5.7 调用contour函数绘制轮廓线图,上一小节提到调用peaks函数绘制轮廓线,本小节围绕contour函数介绍轮廓线的绘制方法。其实,在MATLAB中专门提供了一些绘制轮廓线的函数,如表所示。,7.5.8 特殊坐标系中绘制图形,在MATLAB的可视化功能中,图形的绘制一般采用的都是笛卡尔坐标系,或称直角坐标系统。有一定数学基础的读者都知道,为了使一些特殊数据的图形表示更直观和方便,

27、经常需要使用到直角坐标系之外的其他坐标系,常用的是极坐标、柱坐标和球坐标。MATLAB同样提供了相关的绘制函数,允许用户使用以上特殊坐标系进行图形的绘制,本小节主要就介绍以上三个常用的特殊坐标系的图形绘制函数。,7.6 绘制四维图形,用户通过z=z(x,y)的确定或者不确定的函数对应关系来表现三维图形,此时的自变量是二维的,并且有两个。如果遇到自变量个数为3个的时候,自变量的定义域即为三维空间,图形的根对象,即机器屏幕,一般只能显示3维的空间变量关系,对于作为第4维的函数值变量,就显得无能为力了。针对这个问题,MATLAB提供了一种表现4维空间的方式,即使用色彩。这种方式需要用户调用slice

28、函数来显示“切片”图。,7.7 在图形窗口中进行图形的绘制和编辑,MATLAB 7.0的数据可视化功能不但体现在用户可以调用完整系统的图形绘制函数,还在于系统提供的一个交互式的图形绘制窗口,此窗口在MATLAB 7.0中已经得到了进一步的改进,功能变得比较完善,几乎可以实现所有的绘图和图形编辑功能。用户可以不调用绘图函数,而直接在图形绘制窗口中使用鼠标和键盘进行图形的绘制和编辑,本节主要介绍在此窗口中绘制和编辑图形的方法。,7.7.1 图形窗口的创建,在前面的章节中,用户在绘制所有图形的时候,图形窗口都是系统自动生成的,其实,即使用户不调用具体的绘制函数,也可以通过调用figure函数生成空的

29、图形窗口。figure函数的调用格式和具体功能如下。figure:创建一个图形窗口对象,即生成空的图形窗口。figure(PropertyName,PropertyValue,):创建一个图形窗口对象,并根据用户的设置给其定义属性。figure(h):h代表图形句柄,如果h存在,则使该窗口成为当前窗口;如果h不存在,则创建一个句柄值为h的图形窗口(有关图形句柄的知识,请参考第11章)。h=figure():返回图形窗口对象的句柄。,7.7.2 图形窗口的标题栏和菜单栏,在上一小节中调用了figure函数,创建了一个简单的图形窗口。这里创建的窗口与一般的Windows经典窗口界面类似,图形窗口的界面包含标题栏、菜单栏、工具栏和主窗口。如图所示,图形窗口的标题栏对应图形对象的句柄,显示图形的标题Figure 1。在标题栏的右侧,是与一般Windows窗口相同的窗口操作选项,这里不再赘述。图形窗口的菜单栏中主要包括文件、编辑、视角、插入、工具、桌面、窗口和帮助8个选项,如图所示。,7.7.3 图形窗口的工具栏和工具组件,表 MATLAB图形窗口工具栏部分特殊选项,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号