收藏 分享(赏)

matlab数学建模数据可视化.ppt

上传人:jinchen 文档编号:6842111 上传时间:2019-04-23 格式:PPT 页数:67 大小:1.73MB
下载 相关 举报
matlab数学建模数据可视化.ppt_第1页
第1页 / 共67页
matlab数学建模数据可视化.ppt_第2页
第2页 / 共67页
matlab数学建模数据可视化.ppt_第3页
第3页 / 共67页
matlab数学建模数据可视化.ppt_第4页
第4页 / 共67页
matlab数学建模数据可视化.ppt_第5页
第5页 / 共67页
点击查看更多>>
资源描述

1、,第二单元 数据可视化,主要内容,二维绘图三维绘图,数据图视化能使人们用视觉器官直接感受到数据的许多内在本质 。因此,数据可视化是人们研究科学、认识世界所不可缺少的手段。MATLAB不仅数值计算方面是一个优秀的科技应用软件, 在数据可视化方面也具有上佳表现。 MATLAB具有二维、三维乃至四维的图形表现能力。可以从线型、边界面、色彩、渲染、光线、视角等方面把数据的特征表现出来。,MATLAB作图是通过描点、连线来实现的,故在画一个曲线图形之前,必须先取得该图形上的一系列的点的坐标(即横坐标和纵坐标),然后将该点集的坐标传给MATLAB函数画图.,命令为: plot(X,Y,S),plot(X,

2、Y) 画实线 plot(X,Y1,S1,X,Y2,S2,X,Yn,Sn) 将多条线画在一起,X,Y是向量,分别表示点集的横坐标和纵坐标,线型,y 黄色 . 点 - 连线 m 洋红 o 圈 : 短虚线 c 蓝绿色 x x-符号 -. 长短线 r 红色 + 加号 - 长虚线,1.曲线图,二维数据曲线图 1 绘制单根二维曲线 plot函数的基本调用格式为:plot(x,y) 其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。例2-1 在0x2区间内,绘制曲线y=2e-0.5xcos(4x) 程序如下: x=0:pi/100:2*pi; y=2*exp(-0.5*x).*cos(4*pi*x

3、); plot(x,y),例2-2 绘制曲线。 程序如下: t=0:0.1:2*pi; x=t.*sin(3*t); y=t.*sin(t).*sin(t); plot(x,y);,plot函数最简单的调用格式是只包含一个输入参数:plot(x)在这种情况下,当x是实向量时,以该向量元素的下标为横坐标,元素值为纵坐标画出一条连续曲线,这实际上是绘制折线图。,2.1.2 绘制多根二维曲线 1plot函数的输入参数是矩阵形式 (1) 当x是向量,y是有一维与x同维的矩阵时,则绘制出多根不同颜色的曲线。曲线条数等于y矩阵的另一维数,x被作为这些曲线共同的横坐标。 (2) 当x,y是同维矩阵时,则以x

4、,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。 (3) 对只包含一个输入参数的plot函数,当输入参数是实矩阵时,则按列绘制每列元素值相对其下标的曲线,曲线条数等于输入参数矩阵的列数。 (4)当输入参数是复数矩阵时,则按列分别以元素实部和虚部为横、纵坐标绘制多条曲线。,2含多个输入参数的plot函数,调用格式为: plot(x1,y1,x2,y2,xn,yn) (1) 当输入参数都为向量时,x1和y1,x2和y2,xn和yn分别组成一组向量对,每一组向量对的长度可以不同。每一向量对可以绘制出一条曲线,这样可以在同一坐标内绘制出多条曲线。 (2) 当输入参数有矩阵形式时,配对的

5、x,y按对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。,例2-3 分析下列程序绘制的曲线。 x1=linspace(0,2*pi,100); x2=linspace(0,3*pi,100); x3=linspace(0,4*pi,100); y1=sin(x1); y2=1+sin(x2); y3=2+sin(x3); x=x1;x2;x3; y=y1;y2;y3; plot(x,y,x1,y1-1),例2-4 在同一坐标内绘制曲线y1=0.2e-0.5xcos(4x) 和y2=2e-0.5xcos(x)。 程序如下: x=0:pi/100:2*pi; y1=0.2*exp(-0

6、.5*x).*cos(4*pi*x); y2=2*exp(-0.5*x).*cos(pi*x); plot(x,y1,x,y2);,4图形保持,hold on/off命令控制是保持原有图形还是刷新原有图形,不带参数的hold命令在两种状态之间进行切换。,例2-5 采用图形保持,在同一坐标内绘制曲线y1=0.2e-0.5xcos(4x) 和y2=2e-0.5xcos(x)。 程序如下: x=0:pi/100:2*pi; y1=0.2*exp(-0.5*x).*cos(4*pi*x); plot(x,y1) hold on y2=2*exp(-0.5*x).*cos(pi*x); plot(x,y

7、2); hold off,2.1.3 设置曲线样式,MATLAB提供了一些绘图选项,用于确定所绘曲线的线型、颜色和数据点标记符号,它们可以组合使用。例如,“b-.”表示蓝色点划线,“y:d”表示黄色虚线并用菱形符标记数据点。当选项省略时,MATLAB规定,线型一律用实线,按默认颜色顺序绘制。要设置曲线样式可以在plot函数中加绘图选项,其调用格式为:plot(x1,y1,选项1,x2,y2,选项2,xn,yn,选项n),颜色、数据点标记符号、线型,字母 颜色 标点 线型y 黄色 点线m 粉红 圈线c 亮蓝 线r 大红 字线 g 绿色 实线b 蓝色 星形线w 白色 : 虚线k 黑色 (-) 点划

8、线,2.1.4 图形标注与坐标控制,1图形标注有关图形标注函数的调用格式为: title(图形名称) xlabel(x轴说明) ylabel(y轴说明) text(x,y,图形说明) legend(图例1,图例2,),函数中的说明文字,除使用标准的ASCII字符外,还可使用LaTeX格式的控制字符,这样就可以在图形上添加希腊字母、数学符号及公式等内容。例,text(0.3,0.5, sin(omegat+beta)将得到标注效果sin(t+)。,例2-7 在0x2区间内,绘制曲线y1=2e-0.5x和y2=cos(4x),并给图形添加图形标注。 程序如下: x=0:pi/100:2*pi; y

9、1=2*exp(-0.5*x); y2=cos(4*pi*x); plot(x,y1,x,y2) title(x from 0 to 2pi); %加图形标题 xlabel(Variable X); %加X轴说明 ylabel(Variable Y); %加Y轴说明 text(0.8,1.5,曲线y1=2e-0.5x); %在指定位置添加图形说明 text(2.5,1.1,曲线y2=cos(4pix); legend(y1, y2) %加图例,例2-8 在同一坐标中,可以绘制2个同心圆,并加坐标控制。程序如下:,theta=0:.01:2*pi;r1=10; r2=8; x1=cos(thet

10、a)*r1; y1=sin(theta)*r1;x2=cos(theta)*r2;y2=sin(theta)*r2; plot(x1,y1,x2,y2) axis equal grid on; %加网格线 box on; %加坐标边框 axis equal %坐标轴采用等刻度,2坐标控制,axis函数的调用格式为: axis(xmin xmax ymin ymax zmin zmax) axis函数功能丰富,常用的格式还有: axis equal:纵、横坐标轴采用等长刻度。 axis square:产生正方形坐标系(缺省为矩形)。 axis auto:使用缺省设置。 axis off:取消坐标

11、轴。 axis on:显示坐标轴。,给坐标加网格线用grid命令来控制。grid on/off命令控制是画还是不画网格线,不带参数的grid命令在两种状态之间进行切换。给坐标加边框用box命令来控制。box on/off命令控制是加还是不加边框线,不带参数的box命令在两种状态之间进行切换。,2.1.5 图形的可视化编辑,MATLAB 在图形窗口中提供了可视化的图形编辑工具,利用图形窗口菜单栏或工具栏中的有关命令可以完成对窗口中各种图形对象的编辑处理。在图形窗口上有一个菜单栏和工具栏。菜单栏包含File、Edit、View、Insert、Tools、Window和Help共7个菜单项,工具栏包

12、含11个命令按钮。,2.1.6 图形窗口的分割,subplot函数的调用格式为:subplot(m,n,p) 该函数将当前图形窗口分成mn个绘图区,即每行n个,共m行,区号按行优先编号,且选定第p个区为当前活动区。在每一个绘图区允许以不同的坐标系单独绘制图形。,例2-10 在图形窗口中,以子图形式同时绘制多根曲线。 t=0:pi/100:2*pi; y1=sin(t);y3=sin(t+0.5); y2=cos(t);y4=cos(t+0.5); subplot(2,2,1); plot(t,y1) subplot(2,2,2); plot(t,y2) subplot(2,2,3); plot

13、(t,y3) subplot(2,2,4); plot(t,y4),2.2 其他二维图形,2.2.1 其他坐标系下的二维数据曲线图 1对数坐标图形MATLAB提供了绘制对数和半对数坐标曲线的函数,调用格式为: semilogx(x1,y1,选项1,x2,y2,选项2,) semilogy(x1,y1,选项1,x2,y2,选项2,) loglog(x1,y1,选项1,x2,y2,选项2,),例2-11 绘制y=10x的对数坐标图并与直角线性坐标图进行比较。 t=1:0.2:2; y=10.t; subplot(2,2,1);plot(t,y) subplot(2,2,2); semilogx(t

14、,y) subplot(2,2,3); semilogy(t,y) subplot(2,2,4); loglog(t,y),2极坐标图,polar函数用来绘制极坐标图,其调用格式为:polar(theta,rho,选项) 其中theta为极坐标极角,rho为极坐标矢径,选项的内容与plot函数相似。 例2-12 绘制r=sin(t)cos(t)的极坐标图,并标记数据点。 程序如下: t=0:pi/50:2*pi; r=sin(t).*cos(t); polar(t,r,-*);,在MATLAB中,二维统计分析图形很多,常见的有条形图、阶梯图、杆图和填充图等,所采用的函数分别是: bar(x,y

15、,选项) stairs(x,y,选项) stem(x,y,选项) fill(x1,y1,选项1,x2,y2,选项2,),例2-13 分别以条形图、阶梯图、杆图和填充图形式绘制曲线y=2sin(x)。 程序如下:,x=0:pi/10:2*pi; y=2*sin(x); subplot(2,2,1);bar(x,y,g); title(bar(x,y,g);axis(0,7,-2,2); subplot(2,2,2);stairs(x,y,b); title(stairs(x,y,b);axis(0,7,-2,2); subplot(2,2,3);stem(x,y,k); title(stem(x

16、,y,k);axis(0,7,-2,2); subplot(2,2,4);fill(x,y,y); title(fill(x,y,y);axis(0,7,-2,2);,MATLAB提供的统计分析绘图函数还有很多,例如,用来表示各元素占总和的百分比的饼图、复数的相量图等等。 例2-14 绘制图形: (1) 某企业全年各季度的产值(单位:万元)分别为:2347,1827,2043,3025,试用饼图作统计分析。 (2) 绘制复数的相量图:7+2.9i、2-3i和-1.5-6i。,程序如下: subplot(1,2,1); pie(2347,1827,2043,3025); title(饼图); l

17、egend(一季度,二季度,三季度,四季度); subplot(1,2,2); compass(7+2.9i,2-3i,-1.5-6i); title(相量图);,2.3符号函数(显函数、隐函数和参数方程)画图,(1) ezplot,ezplot(x(t),y(t),tmin,tmax) 表示在区间tminttmax绘制参数方程 x=x(t),y=y(t)的函数图.,ezplot(f(x),a,b) 表示在axb绘制显函数f=f(x)的函数图.,ezplot(f(x,y),xmin,xmax,ymin,ymax) 表示在区间xminxxmax和 yminyymax绘制 隐函数f(x,y)=0的

18、函数图.,例 在0, 上画y=cos x 的图形.,解 输入命令 ezplot(sin(x),0,pi),解 输入命令ezplot(cos(t)3,sin(t)3,0.2*pi),解 输入命令ezplot(exp(x)+sin(x*y),-2,0.5,0,2),(2) fplot对函数自适应采样的绘图函数,fplot函数的调用格式为: fplot(fname,lims,tol,选项) 其中fname为函数名,以字符串形式出现,lims为x,y的取值范围,tol为相对允许误差,其系统默认值为2e-3。选项定义与plot函数相同。,注意: 1 fun必须是M文件的函数名或是独立变量为x的字符串.

19、2 fplot函数不能画参数方程和隐函数图形,但在一个图上可以画多个图形.,例2-9 用fplot函数绘制f(x)=cos(tan(x)的曲线。 命令如下:fplot(cos(tan(pi*x), 0,1,1e-4),2.4 三维图形,2.4.1 三维曲线 plot3函数与plot函数用法十分相似,其调用格式为:plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,xn,yn,zn,选项n) 其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。当x,y,z是同维向量时,则x,y,z 对应元素构成一条三维曲线。当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制

20、三维曲线,曲线条数等于矩阵列数。,例2-16 绘制三维曲线。 程序如下: t=0:pi/100:20*pi; x=sin(t); y=cos(t); z=t.*sin(t).*cos(t); plot3(x,y,z); title(Line in 3-D Space); xlabel(X);ylabel(Y);zlabel(Z); grid on;,2.4.2 三维曲面,1产生三维数据 在MATLAB中,利用meshgrid函数产生平面区域内的网格坐标矩阵。其格式为: x=a:d1:b; y=c:d2:d; X,Y=meshgrid(x,y); 语句执行后,矩阵X的每一行都是向量x,行数等于向

21、量y的元素的个数,矩阵Y的每一列都是向量y,列数等于向量x的元素的个数。,2绘制三维曲面的函数 surf函数和mesh函数的调用格式为: mesh(x,y,z,c) surf(x,y,z,c) 一般情况下,x,y,z是维数相同的矩阵。x,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。,此外,还有带等高线的三维网格曲面函数meshc和带底座的三维网格曲面函数meshz。其用法与mesh类似,不同的是meshc还在xy平面上绘制曲面在z轴方向的等高线,meshz还在xy平面上绘制曲面的底座。,3. 平面等值线图: contour(x,y,z,n) 绘制n个等值线的二维

22、等值线图,解 输入命令:X,Y=meshgrid(-2:0.2:2,-2:0.2:3);Z=X.*exp(-X.2-Y.2);C,h=contour(X,Y,Z); clabel(C,h)colormap cool,返回,2. 空间等值线图: contour 3(x,y,z,n),其中n表示等值线数.,例 山峰的三维和二维等值线图.,解 x,y,z=peaks;subplot(1,2,1) contour3(x,y,z,16,s) grid, xlabel(x-axis),ylabel(y-axis)zlabel(z-axis)title(contour3 of peaks); subplot

23、(1,2,2)contour(x,y,z,16,s)grid, xlabel(x-axis), ylabel(y-axis)title(contour of peaks);,例2-18 在xy平面内选择区域-8,8-8,8,绘制4种三维曲面图。 程序如下: x,y=meshgrid(-8:0.5:8); z=sin(sqrt(x.2+y.2)./sqrt(x.2+y.2+eps); subplot(2,2,1); mesh(x,y,z); title(mesh(x,y,z) subplot(2,2,2); meshc(x,y,z); title(meshc(x,y,z) subplot(2,2

24、,3); meshz(x,y,z) title(meshz(x,y,z) subplot(2,2,4); surf(x,y,z); title(surf(x,y,z),3标准三维曲面,sphere函数的调用格式为:球体x,y,z=sphere(n) cylinder函数的调用格式为:圆柱x,y,z= cylinder(R,n)半径为R,高度为1的圆柱体的xyz轴的坐标值,圆柱体的圆周有指定的n个距离相同的点 MATLAB还有一个peaks 函数,称为多峰函数,常用于三维曲面的演示。,例2-19 绘制标准三维曲面图形。 程序如下: t=0:pi/20:2*pi; x,y,z= cylinder(

25、2+sin(t),30); subplot(2,2,1); surf(x,y,z); subplot(2,2,2); x,y,z=sphere; surf(x,y,z); subplot(2,1,2); x,y,z=peaks(30); surf(x,y,z);,2.5 图形修饰处理,2.5.1 视点处理 MATLAB提供了设置视点的函数view,其调用格式为:view(az,el) 其中az为方位角,el为仰角,它们均以度为单位。系统缺省的视点定义为方位角-37.5,仰角30。,2.5.2 色彩处理,1颜色的向量表示MATLAB除用字符表示颜色外,还可以用含有3个元素的向量表示颜色。向量元素

26、在0,1范围取值,3个元素分别表示红、绿、蓝3种颜色的相对亮度,称为RGB三元组。,2色图色图(Color map)是MATLAB系统引入的概念。在MATLAB中,每个图形窗口只能有一个色图。色图是m3 的数值矩阵,它的每一行是RGB三元组。色图矩阵可以人为地生成,也可以调用MATLAB提供的函数来定义色图矩阵。,3三维表面图形的着色三维表面图实际上就是在网格图的每一个网格片上涂上颜色。surf函数用缺省的着色方式对网格片着色。除此之外,还可以用shading命令来改变着色方式。shading faceted命令将每个网格片用其高度对应的颜色进行着色,但网格线仍保留着,其颜色是黑色。这是系统的

27、缺省着色方式。shading flat命令将每个网格片用同一个颜色进行着色,且网格线也用相应的颜色,从而使得图形表面显得更加光滑。shading interp命令在网格片内采用颜色插值处理,得出的表面图显得最光滑。,例2-23 3种图形着色方式的效果展示。 程序如下: x,y,z=sphere(20); colormap(copper); subplot(1,3,1); surf(x,y,z); axis equal subplot(1,3,2); surf(x,y,z);shading flat; axis equal subplot(1,3,3); surf(x,y,z);shading

28、interp; axis equal,2.5.4 图形的裁剪处理,例2-25 绘制三维曲面图,并进行插值着色处理,裁掉图中x和y都小于0部分。 程序如下: x,y=meshgrid(-5:0.1:5); z=cos(x).*cos(y).*exp(-sqrt(x.2+y.2)/4); surf(x,y,z);shading interp; pause %程序暂停 i=find(x=0 为了展示裁剪效果,第一个曲面绘制完成后暂停,然后显示裁剪后的曲面。,动画制作 MATLAB提供getframe、moviein和movie函数进行动画制作。 1getframe函数 getframe函数可截取一幅

29、画面信息(称为动画中的一帧),一幅画面信息形成一个很大的列向量。显然,保存n幅图面就需一个大矩阵。,2moviein函数 moviein(n)函数用来建立一个足够大的n列矩阵。该矩阵用来保存n幅画面的数据,以备播放。之所以要事先建立一个大矩阵,是为了提高程序运行速度。 3movie函数 movie(m,n)函数播放由矩阵m所定义的画面n次,缺省时播放一次。,例2-27 绘制了peaks函数曲面并且将它绕z轴旋转。 程序如下 X,Y,Z=peaks(30); surf(X,Y,Z) axis(-3,3,-3,3,-10,10) axis off; shading interp; colormap

30、(hot); m=moviein(20); %建立一个20列大矩阵 for i=1:20 view(-37.5+24*(i-1),30) %改变视点 m(:,i)=getframe; %将图形保存到m矩阵 end movie(m,2); %播放画面2次,应用举例,clear; t=1:9; d1=12.51 13.54 15.60 15.92 20.64 24.53 30.24 30.00 36.34; d2=2.87 20.54 32.21 40.50 48.31 64.51 72.32 85.98 89.77; d3=10.11 8.14 14.17 20.14 40.50 39.45 6

31、0.11 62.13 20.90; plot(t,d1,r.-,t,d2,gx:,t,d3,m*-.); title(稳定性变化规律); xlabel(时间); ylabel(稳定性); axis(0 10 0 100); text(6.5,25.5,leftarrow样品a); text(3,43.8,样品brightarrow); text(4.8,30.5,leftarrow样品c);,作业: 1在同一坐标内,分别用不同线型和颜色绘制曲线 y1=0.2e-0.5xcos(4x) 和y2=2e-0.5xcos(x),标记两曲 线交叉点。 2 绘制三维曲面图z=sin(x+sin(y)-x/

32、10。,x=linspace(0,2*pi,1000); y1=0.2*exp(-0.5*x).*cos(4*pi*x); y2=2*exp(-0.5*x).*cos(pi*x); k=find(abs(y1-y2)1e-2); % x1=x(k); % y3=0.2*exp(-0.5*x1).*cos(4*pi*x1); % plot(x,y1,x,y2,k:,x1,y3,bp);,绘制山区地貌图,要在某山区方圆大约27km2范围内修建一条公路,从山脚出发经过一个居民区,再到达一个矿区.横向纵向分别每隔400m测量一次,得到一些地点的高程:(平面区域0x 5600,0y4800),需作出该山区的地貌图和等高线图.,返回,要求x0,y0单调;x,y可取为矩阵,或x取行向量,y取为列向量,x,y的值分别不能超出x0,y0的范围。,z=interp2(x0,y0,z0,x,y,method),用MATLAB作网格节点数据的插值,nearest 最邻近插值 linear 双线性插值 cubic 双三次插值 缺省时, 双线性插值,谢谢!,

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

当前位置:首页 > 网络科技 > UML理论/建模

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报