《《数据的可视化》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数据的可视化》PPT课件.ppt(33页珍藏版)》请在三一办公上搜索。
1、第三章 数据的可视化,主要内容,3.1数据可视化基础3.2二维图形3.3三维图形3.4常用函数的绘图3.5数据可视化的其他方面,3.1 数据可视化基础,一、图形窗口 MATLAB自动将图形画在图形窗口上,图形窗口相对于命令窗口是独立的窗口。图形窗口的属性由系统和MATLAB共同控制。当没有图形窗口时,绘图命令将新建一个图形窗口;当已经存在一个或多个图形窗口时,一般指定最后一个图形窗口作为当前图形命令的输出窗口。有关图形窗口的函数介绍:figure用默认的属性创建新的图形窗口,并将新创建的窗口作为当前绘图窗口。,3.1 数据可视化基础,figure(PropertyName,PropertyVa
2、lue,.)用指定的属性创建图形窗口,并将新创建的窗口作为当前绘图窗口。其中PropertyName为属性名,PropertyValue为PropertyName属性的值。figure(h)如果整数h不是某个已经存在的图形窗口的句柄,则创建新的图形窗口,并将h指定为新窗口的图形句柄;如果h是已经存在的图形窗口的句柄,则将图形句柄为h的图形窗口设置为当前图形窗口,并在屏幕的最前端显示。,3.1 数据可视化基础,h=figure(.)创建图形窗口,并返回其图形句柄。subplot(m,n,p)将当前图形窗口分为m行n列个子窗口,并指定第p个子窗口为当前的绘图子窗口。子窗口序号p是按照行优先的次序排
3、列的,这点和矩阵是不同的。如果不存在当前绘图窗口,则先创建一个新的绘图窗口,然后再划分子窗口。clf清除当前绘图窗口内的图形。例,3.1 数据可视化基础,二、离散数据的准备 Matlab是根据离散的数据来绘制图形的,因此调用绘图命令前要为绘图命令准备离散的绘图数据。1.离散函数如果函数为离散函数,则只需要在自变量区间内取遍所有离散点的值,从而获得离散的函数值即可。,例:对于函数,在n=1,2,10区间我们可以用下面语句准备数据:n=1:10;%离散的自变量n的值y=1./n+n+n.2;%离散的函数值,3.1 数据可视化基础,2、连续函数绘制连续函数的曲线,需要对连续函数的自变量取值区间进行离
4、散采样。采样间隔越近,数据信息就越全面,绘制出的图形就越接近于连续函数。在连续函数的自变量区间取足够多的离散值,代入连续函数中,从而获取离散的函数值。,例:对于函数 在区间 内我们可以按下面语句准备数据x=linspace(0,2*pi,100);%在 之间均匀取100个自变量值y=sin(x)+cos(x);,3.1 数据可视化基础,三、数据可视化的基本步骤准备绘图需要的数据;指定绘图的窗口或者区域;选择线型、颜色、数据点形状等绘图属性;调用基本绘图命令;坐标轴控制,包括显示范围、刻度线、比例、网格线;标注控制,包括坐标轴名称、标题、相应文本等。其他更精确的控制,如颜色、视角、剪切和镂空等。
5、,3.2 二维图形,Matlab提供了许多绘制二维图形的函数,它们的函数名称不同,但是函数的参数定义和plot函数完全相同,本节将只介绍plot函数。绘制二维图形的命令表,3.2 二维图形,一、基本二维绘图函数plot 功能:plot是最基本的二维图形命令,它是以MATLAB的内部函数形式出现的。MATLAB的其他二维函数中的绝大多数是以plot为基础构造的绘图命令。格式:plot(y),ploy(x,y),plot(x1,y1,x2,y2,)【说明】(1)plot(y)若y为实向量,则以y的元素为纵坐标,以相应元素下标为横坐标,绘制连线图。若y为实矩阵,则按列绘制每列元素值相对其下标的连线图
6、,图中的曲线数等于矩阵的列数。若y为复矩阵,则分别以每列元素的实部和虚部为纵横坐标绘制多条连线图。,3.2 二维图形,(2)ploy(x,y)当y和x为同维向量,则以x为横坐标、y为纵坐标绘制连线图。若x为向量,y是有一维和x同维的矩阵,则绘制多条不同颜色的连线图,曲线的个数等于矩阵的另一维,x作为这些曲线的共同横坐标。若x为矩阵,y为向量,情况与上面相同,只是都是以y为共同的纵坐标。若x和y为同维实数矩阵,则以x、y对应列元素为横纵坐标分别绘制曲线,曲线条数等于矩阵的列数。若x和y为复数矩阵时,MATLAB将忽略虚数部分。,3.2 二维图形,(3)plot(x1,y1,x2,y2,)每对x、
7、y必须符合plot(x,y)中的要求,不同对之间没有影响,命令将对每一对x,y绘制曲线。【注意】以上的三种格式中,输入参数x,y都可以是表达式,但表达式的结果应符合上述格式要求。例,3.2 二维图形,二、plot函数的绘图属性控制 在调用函数plot时,可以指定线型、颜色和数据点的图标,其调 用格式为:plot(x,y,color_linestyle_marker)说明:参数color_linestyle_marker 为一个字符串,由颜色、线型、数据点的图标组成。颜色字符定义表,3.2 二维图形,数据点标记字符定义表,线型字符定义表,例,3.2 二维图形,三、绘图窗口的属性控制绘图窗口的属性
8、可以由Matlab和Windows共同控制,通常情况下是用默认的绘图属性建立绘图窗口的,用户可以通过Matlab提供的命令和函数来修改绘图窗口的属性。1.坐标控制可以控制坐标轴的各种属性,包括坐标轴的方向、范围、高宽比等。下面的指令是常用的坐标轴控制指令。axis auto使用默认的坐标轴属性axis on 显示坐标轴背景axis off取消坐标轴背景,3.2 二维图形,axis(xmin,xmax,ymin,ymax)设定x和y轴的坐标值范围axis equal横轴和纵轴的单位刻度相同axis square横纵和纵轴的长度相同axis tight把数据范围直接设置为坐标值范围axis ima
9、ge采用相同的单位刻度,且坐标框紧贴数据范围2.刻度设置 缺省情况下,Matlab自动在坐标范围内生成均匀的刻度,用户可以使用set命令改变刻度值,其使用方法如下:set(gca,Xtick,xs,Ytick,ys)其中xs和ys分别是横轴和纵轴的刻度行向量。,3.2 二维图形,3.栅格控制栅格是根据显示刻度绘制的虚线分格线,可以控制是否显示栅格。grid on 显示栅格grid of隐藏栅格grid切换栅格的显示和隐藏4.追加控制绘图窗口绘制图形时,可以指定绘图是是否采用追加(层叠)方式。追加方式是指每次的绘图指令都不会擦去图形窗口的原有图形,只是在原图上面层叠绘制新的图形。hold on打
10、开追加绘图方式hold off关闭追加绘图方式,3.2 二维图形,四、图形标注很多时候,在图形上需要加上适当的文字说明,即标注,比如图名、坐标轴的名字、坐标点的值等。Matlab提供了图形标注的函数,主要的图形标注函数如下:xlable(string,FontSize,zize)显示横坐标轴的名称ylable(string,FontSize,zize)显示纵坐标轴的名称title(string,FontSize,size)显示图形标题text(x,y,stirng)在(x,y)坐标处显示字符串string其中FontSize表示字体尺寸属性,size为使用的字体尺寸,这2个输入变量可以省略,此
11、时使用默认的字体显示标注信息。,例,例,3.2 二维图形,五、图形交互命令Matlab提供了一些和鼠标操作相关的图形命令,用户可以通过这些命令和图形窗口进行交互。1、ginputx,y=ginput(n)用鼠标从二维图形上拾取n个数据点的坐标(x,y)x,y=ginput用鼠标从二维图形上拾取多个数据点的坐标(x,y),直到输入回车按键。x,y,button=ginput()除了返回数据点的坐标外,button中还返回鼠标或者按键信息。1表示鼠标左键,2表示鼠标中间按键,3表示鼠标右键,ASCII码表示按键的键值。,3.2 二维图形,2、gtext格式:gtext(arg)说明:用鼠标把字符串
12、或者字符串细胞数组arg放置到图形上。3、zoom格式:zoom off关闭当前图形的变焦功能zoom on打开当前图形的变焦功能zoom out是图形返回初始尺寸zoom(fact)设置变焦因子(每次变焦的倍数),缺省的变焦因子为2说明:如果图形在变焦状态下,用户可以通过鼠标来 放大或者缩小图形,包括用鼠标左键放大、用 鼠标右键缩小、用鼠标选定显示范围等操作。,3.3 三维图形,一、基本三维图形的绘图指令plot3基本的三维绘图指令是plot3,其使用方法和plot函数基本相同。调用格式:plot3(X,Y,Z,s)【说明】当X,Y,Z为同向量组时,绘制以X、Y、Z的元素为x、y、z坐标的三
13、维曲线;当X,Y,Z为同维数组时,分别以其对应的列向量元素为x、y、z坐标绘制多条三维曲线,曲线的条数等于矩阵的列数;字符串s表示颜色、线性和点形状控制,定义同plot;可以使用多组参数绘图,每组参数之间没有约束关系,如plot3(x1,y1,z1,x2,y2,z2);plot3主要用来绘制参数方程决定的三维曲线。,例3.3.1:设某参数方程组为,试绘制由变量x,y,z确定的三维曲线。,3.3 三维图形,二、三维网线和曲面 三维网线和曲面的绘制比三维曲线要复杂。这主要表现在数据的准备和三维图形的色彩、光照、视点和消隐控制。,3.3 三维图形,1、三维图形的数据准备 一元函数代表的是二维曲线,自
14、变量的取值仅仅需要提供x轴上离散的采样点,就很容易构造离散的函数采样点。二元函数代表了三维空间的曲面,其中x和y为自变量,z为函数值。要绘制这个曲面,需要同时准备自变量x和y的数据,而仅知道了x 轴的离散采样点和 y 轴的离散采样点,仍无法直接绘制曲面,还要用x轴的采样点和y轴的采样点构造出x-y平面的离散采样点。,3.3 三维图形,例如:二元函数的自变量x的离散值可取1,2,3,自变量y的离散值可取11,12,13,则计算z值需要代入x和y的坐标对为(1,11)、(1,12)、(1,13)、(2,11)、(2,12)、(2,13)、(3,11)、(3,12)、(3,13),这9组数据我们称为
15、曲面的采样格点矩阵,如图所示,图中“*”标记的点即是x-y平面的采样点。,生成采样格点矩阵的函数,调用格式如下:X,Y=meshgrid(x,y)其中x和y分别是横轴和纵轴的离散采样点,X和Y是生成的采样格点矩阵的横坐标向量和纵坐标向量。,例,3.3 三维图形,2、三维网线图 三维网线是指绘图点之间用曲线连接起来。Matlab中绘制网线图的函数是 mesh。mesh(Z)用矩阵Z的列、行下标作为x轴和y轴变量,画网线图mesh(X,Y,Z)分别用X,Y,Z作为x,y,z轴的坐标进行绘图mesh(X,Y,Z,C)用数据X,Y,Z和颜色属性矩阵C绘图3、曲面图曲面图是指绘图点之间用曲面连接起来。绘
16、制曲面图的函数是surf。其调用格式和mesh函数完全相同。surf(Z)surf(X,Y,Z,C),例 绘制由函数 在自变量取 范围内的网线图和曲面图。,3.4 函数绘图的Matlab函数,绘制连续函数的曲线,要为绘图函数准备数据,这使函数曲线的绘制工作变得比较麻烦。为了更轻松的实现函数的可视化,Matlab提供了一些简洁的绘图指令,应用这些指令无需准备数据就直接画出字符串函数或者符号函数的图形。这个系列的函数名都用“ez”开头。一、一元函数的简洁绘图函数ezplot格式:ezplot(F,xmin,ymin)【说明】F是字符表达式、符号函数、函数M文件或者内联函数,且只能有一个自变量。xm
17、in,xmax是自变量的取值区间。如果不指定自变量取值范围,Matlab会根据函数自动选取自变量的值。,3.4 函数绘图的Matlab函数,例 绘制 在0t20区间的函数曲线。,二、二元函数的简洁绘图函数ezsurf【格式】ezsurf(F,domain,ngrid)在指定矩形区域上,用指定格点数画二元函数曲面ezsurf(F,domain,circ)在极坐标中绘制二元函数曲面,3.4 函数绘图的Matlab函数,【说明】F是字符表达式、符号函数、函数M文件或者内联函数。F是二元函数,只能包含2个自由变量。Matlab会自动 按照“子母排序”辨认变量次序。建议用户书写函数时用x和y做自变量。,
18、若domain=a,b,则自变量取值范围为;,例 在极坐标系中绘制 的图形,若domain=a,b,c,d时,自变量取值范围是:。,ngrid是绘图的格点数。格点数越多,图形越细腻,默认值是60,3.5 数据可视化的其他方面,一、特殊图形Matlab提供了一些常用的特殊图形的绘制函数,下面仅仅列出相关函数名字,使用这些函数时参考帮助信息。直方图bar bar3 barh bar3h面积图area统计频数直方图hist rose填色图fill fill3火柴杆图stem stem3矢量图 compass feather quiver quiver3等高线图 clabel contour cont
19、our3 countourf彩带图ribbon,3.5 数据可视化的其他方面,二、三维图形的精细控制为了能获得更好的视觉效果,Matlab提供了对三维图形更为精确的控制函数。下面列出和这些精细控制有关的函数或者命令。透视与消隐:处理被遮盖在下面的那部分图形hidden视点控制:从不同的视角看到的图形效果view旋转:图形旋转一定角度后的效果rotate色彩控制:用不同的颜色组显示图形colordef whitebg colormap shading,3.5 数据可视化的其他方面,照明和材质处理:有光源照射、反射时图形的效果light lighting material surfl透明处理:采用透明化技术揭示复杂图形的内部结构alpha alim alphamap三、图像图像数据文件主要保存的是图像上各个像素的颜色值,根据图像颜色数的不同,有8位色(256色)图像、16位色(65535)图像等。为节省内存,Matlab中定义了unit8和unit16数据类型用以保存颜色值,由unit8或者unit16构成的矩阵用来保存图像各个像素的颜色值,即保存图像数据(8位图像、16位图像)。,3.5 数据可视化的其他方面,和图像显示和读取有关的函数包括:image colormap imfinfo imread imwrite,习题,
链接地址:https://www.31ppt.com/p-5584112.html