第五章数据和函数的可视化.ppt

上传人:s****8 文档编号:93913936 上传时间:2023-07-17 格式:PPT 页数:47 大小:409KB
返回 下载 相关 举报
第五章数据和函数的可视化.ppt_第1页
第1页 / 共47页
第五章数据和函数的可视化.ppt_第2页
第2页 / 共47页
点击查看更多>>
资源描述

《第五章数据和函数的可视化.ppt》由会员分享,可在线阅读,更多相关《第五章数据和函数的可视化.ppt(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第五章 数据和函数的可视化7/16/2023 1可视化的作用:通过图形,从一堆杂乱的离散数据中观察数据间的内在关系,感受图形所传递的内在本质.本章将系统地阐述:曲线,曲面绘制的基本技法和指令;如何使用线型,色彩,数据点标记表现不同数据的特征;如何利用着色,灯光照明,烘托表现高维函数的性状;如何生成和运用标识注释图形5.1 引导任何二元实数标量对(xa,ya)可以用平面上的一个点表示,任何二元实数向量对(x,y)可以用平面上的一组点表示.对于离散实函数y=f(x),x=x1,x2,xn,y=y1,y2,yn,当把这向量对用直角坐标中的点系列图示时,就实现了离散函数的可视化.当然这只是某确定的有限

2、区间内的函数关系.图形不能表现无限区间上的函数关系5.1.1 离散数据和离散函数的可视化7/16/2023 2例5.1-1 用图形表示离散函数y=|(n-6)|-1n=0:1:12 y=1./abs(n-6);plot(n,y,r*,MarkerSize,20);grid on;7/16/2023 35.1.2 连续函数的可视化与离散函数可视化一样,进行连续函数可视化也必须先在一组离散自变量上计算相应的函数值,并把得到的数据对用点图示.但这些离散的点不能表现函数的连续性.为表示离散点间的函数关系,有两种常用处理方法:对区间进行更细的分割,计算更多的点,去近似表现函数的连续变化;把两点用直线连接

3、,近似表现两点间的函数性状在matlab 中,以上两种表现方法都可以采用.但如果自变量的采样点不足够多,则无论哪种方法都不能真实反映原函数.7/16/2023 45.1.2-1 用图形表示函数y=sinx,区间0,2x1=0:2*pi/5:2*pi;y1=sin(x1);%6 点x2=0:2*pi/10:2*pi;y2=sin(x2);%11 点x3=0:2*pi/20:2*pi;y3=sin(x3);%21 点x4=0:2*pi/100:2*pi;y4=sin(x4);%101 点subplot(2,2,1),plot(x1,y1,x1,y1,r*),hold on,xlabel(6 poi

4、nts),plot(x1,zeros(size(x1),k);subplot(2,2,2),plot(x2,y2,x2,y2,r*),hold on,xlabel(11 points),plot(x2,zeros(size(x2),k);subplot(2,2,3),plot(x3,y3),xlabel(21 points),hold on,plot(x3,zeros(size(x3),k);subplot(2,2,4),plot(x4,y4),xlabel(101 points),hold on,plot(x4,zeros(size(x4),k);7/16/2023 57/16/2023 6

5、5.1.3 可视化的一般步骤1)曲线数据准备(基本步骤,必须)取一个参变量采样向量 计算各坐标数据变量x=a:inc:b;y=f(x);二维:三维:产生自变量采样向量 产生自变量格点矩阵 计算自变量格点矩阵相应的函数值矩阵x=x1:dx:x2y=y1:dy:y2X,Y=meshgrid(x,y)格点矩阵Z=f(X,Y)实验数据:X=x1,x2,xn-1,xnY=y1,y2,yn-1,yn7/16/2023 72)选定图形窗及子图位置(图形较多时使用)缺省时,打开Figure No.1 或当前窗,当前子图 可用指令指定图形窗号和子图号(同时绘制多幅图)figure(1)%指定1 号图形窗subp

6、lot(2,2,3)%指定3 号子图,共个4 子图3)调用绘图指令,设置线型,色彩,数据点型.(基本步骤,必须)plot(x,y,r:);%用红色虚点画二维曲线plot3(x,y,z,b-);%用兰色实线画三维曲线7/16/2023 84)设置轴的范围,坐标分格线axis(x1,x2,y1,y2)%平面坐标范围 axis(x1,x2,y1,y2,z1,z2)%三维坐标范围grid on%坐标分格线,打开5)图形注释:图名,坐标名,图例,文字说明title(调制波形)%图名xlabel(t),ylabel(y)%轴名legend(sin(t),sin(t)sin(9t)%图例text(2,0.5

7、,y=sin(t)sin(9t)%文字说明7/16/2023 96)着色,明暗,灯光,材质处理(仅对三维图形使用)colormap,shading,light,material7)视点,三度(横,纵,高)比(仅三维)view,aspect8)图形的精细修饰(图柄操作):利用对象属性值设置 利用图形窗工具条进行get,set9)打印 图形窗上的直接打印选项或按键 利用图形后处理软件打印7/16/2023 105.2 二维曲线绘图的基本操作在二维曲线绘图指令中,最重要,最基本的指令是plot,它有多种调用格式5.2.1 plot 的基本调用格式(1)plot(X,s)X 是实向量时,以该向量元素的

8、下标为横坐标,元素值为纵坐标绘一条连续曲线 x=1:10,plot(x)X 是实矩阵时,则按列绘制每列元素值相对其下标的曲线,曲线数为矩阵的列数 X 是复数矩阵时,则按列分别以元素实部和虚部为横,纵轴绘制多条曲线 s 是用来指定线型,色彩,数据点形的选项字符串7/16/2023 11(2)plot(X,Y,s)X,Y 是同维向量时,绘制以X,Y 元素为横、纵坐标的曲线 X 是向量,Y 是有一维与X 等维的矩阵时,则绘出多根不同颜色的 曲线.曲线数等于Y 的另一维数,X 作为这些曲线的共同横坐标.X 是矩阵,Y 是向量时,情况同上,只是曲线都以Y 为共同纵坐标.X,Y 是同维矩阵时,则以X,Y

9、对应列元素为横,纵坐标分别绘制 曲线,曲线条数等于矩阵的列数(3)plot(X1,Y1,s1,X2,Y2,s2,)在此格式中,每个绘线单元“X,Y,s”的结构与作用,与(2)中相同,不同的单元间没有约束关系7/16/2023 12例5.2-2 二维曲线绘制基本指令演示t=(0:pi/50:2*pi);%t(101 x 1)k=0.4:0.1:1;%k(1 x 7)Y=cos(t)*k;%矩阵相乘,Y(101 x 7)plot(t,Y)plot(t,zeros(size(t),k);例5.2-3 用图形表示连续调制波形y=sin(t)sin(9t)及其包络线t=(0:pi/100:pi);y1=

10、sin(t)*1,-1;%两条包络线y2=sin(t).*sin(9*t);t3=pi*(0:9)/9;%sin(9t)=0 的点y3=sin(t3).*sin(9*t3);plot(t,y1,r:,t,y2,b,t3,y3,bo)axis(0,pi,-1,1)7/16/2023 13例5.2-4 采用模型画一组椭圆(a=0.5,1,1.5,4.5)th=0:pi/50:2*pi;%th101 x 1a=0.5:0.5:4.5;%a1 x 9X=cos(th)*a;%X101 x 9Y=sin(th)*sqrt(25-a.2);%Y101 x 9plot(X,Y);axis(equal);xl

11、abel(x),ylabel(y);title(A set of ellipaes)7/16/2023 145.2.2 曲线的色彩,线型和数据点形线形符号-:-.-含义 实线 虚线 点划线 双划线色彩符号 b g r c m y k w含义 蓝 绿 红 青 品红 黄 黑 白如:s=r:-表示红色虚线7/16/2023 15数据点形符号 含义 符号 含义.实心点 d 菱形符 diamond+十字符 h 六角星 hexagram*八线符 o空心圆圈 朝上三角符 p 五角星 pentagram 朝右三角符 x叉字符 v朝下三角符演示数据点型的变化7/16/2023 16plot 的属性可控调用格式p

12、lot(x,y,s,PropertyName,PropertyValue,)含义 属性名 属性值 说明点、线颜色ColorVr,Vg,Vb默认为b线 型LineStyle-,:,-.,-默认为实线线 宽LineWidth正实数默认为0.5点 形 状Markerd,+,可通过s 设置点 大 小MarkerSize正实数默认为6.0plot(x,y,LineStyle,:,LineWidth,8.5)7/16/2023 175.2.3 坐标,刻度和分格线控制 坐标轴控制方式,取向和范围坐标轴的高宽比指令 含义 指令 含义axis auto使用缺省设置axis equal横,纵轴等长刻度axis m

13、anual使当前坐标范围不变axis fill坐标充满整个绘图区axis off取消轴背景axis image横,纵轴等长刻度,坐标框紧贴数据范围axis on使用轴背景axis normal缺省矩形坐标系axis ij矩阵式坐标,原点在左上方axis square产生正方形坐标系axis xy普通直角坐标,原点在左下方axis tight把数据范围设为坐标范围axis(V)V=x1,x2,y1,y2V=x1,x2,y1,y2,z1,z2人工设置坐标围.设定值二维:个三维:个axis vis3d保持高宽比不变,用于三维旋转时避免图形大小变化说明:V V 的元素允许取 的元素允许取inf inf

14、 或 或 inf inf,指上限或下限是自动产生的,即坐标范围半自,指上限或下限是自动产生的,即坐标范围半自动确定 动确定7/16/2023 18例5.2-5 各种轴控制指令示例t=0:2*pi/99:2*pi;x=1.15*cos(t);y=3.25*sin(t);subplot(2,3,1),plot(x,y),axis normal,grid on;title(Normal and Grid on)subplot(2,3,2),plot(x,y),axis equal,grid on,title(Equal)subplot(2,3,3),plot(x,y),axis square,gri

15、d on,title(Square)subplot(2,3,4),plot(x,y),axis image,box off,title(Image and Box off)subplot(2,3,5),plot(x,y),axis image fill,box off,title(Image and Fill)subplot(2,3,6),plot(x,y),axis tight,box off,title(Tight)7/16/2023 19例5.2-6 等轴刻度控制r=2;x=-r:r/50:r;y1=sqrt(r*r-x.*x);y2=-y1;plot(x,y1,LineWidth,10

16、);hold on;plot(x,y2,LineWidth,10);%(分两步,观看区别)axis equalaxis offaxis ongrid on7/16/2023 20分格线和坐标框grid-是否画分格线的双向切换指令(使当前分格线状态翻转)grid on-画出分格线grid off-不画分格线box-坐标形式在封闭式和开启式之间切换指令box on-使当前坐标呈封闭形式box off-使当前坐标呈开启形式7/16/2023 21说明:不画分格线是matlab 的缺省设置 分格线的疏密取决于坐标刻度,如想改变分格线的疏密,必须 先定义坐标刻度 缺省情况下,所画坐标呈封闭形式7/16/

17、2023 225.2.4 图形标识图形标识包括:图名(title),坐标轴名(xlabel,ylabel),图形注释(text)和图例(legend)title(s)-书写图名xlabel(s)-横坐标轴名ylabel(s)-纵坐标轴名Legend(s1,s2,)-绘制曲线所用线型,色彩或数据点形图例text(xt,yt,s)-在图面坐标处书写字符注释精细指令形式表格6.2-46.2-77/16/2023 23例5.2.4-1 图形标识示例t=0:2*pi/199:2*pi;y=sin(t);plot(t,y);title(y=sint);xlabel(t),ylabel(y);legend(

18、t is in 0,2*pi)text(4.5,0.4,the function is y=sint)7/16/2023 247/16/2023 25例5.2.4-1 镇定时间的求取t=6*pi*(0:100)/100;y=1-exp(-0.3*t).*cos(0.7*t);tt=t(find(abs(y-1)0.05);%所有满足条件的t 值ts=max(tt);plot(t,y,r-,LineWidth,3);axis(-inf,6*pi,0.6,inf)set(gca,Xtick,2*pi,4*pi,6*pi,Ytick,0.95,1,1.05,max(y)grid on;title(i

19、ty=1-e-alphatcosomegat)text(13.5,1.2,fontsize12alpha=0.3)text(13.5,1.1,fontsize12omega=0.7)7/16/2023 26hold on;plot(ts,0.95,bo,MarkerSize,10);hold off;cell_string1=fontsize12 uparrow;cell_string2=fontsize16 fontname 隶书 镇定时间;cell_string3=fontsize6;cell_string4=fontsize14rmt_s=num2str(ts);text(ts,0.85

20、,cell_string);xlabel(fontsize14bftrightarrow);ylabel(fontsize14bfyrightarrow);7/16/2023 277/16/2023 285.2.5 多次叠绘,双纵坐标和多子图(1)多次叠绘多次叠绘是在同一个图面上绘制多个不同的图形.为了保证绘图时不把已经存在的图形覆盖掉,可以使用hold 指令hold on-使当前轴和图形保持而不被刷新,准备接受此后绘制的新曲线hold off-使当前轴及图形不再具备不被刷新的性质hold-当前图形是否具备刷新性质的双向切换开关例6.2.5-1 hold 的使用t=0:2*pi/200:2*p

21、i;y=sin(t);y1=cos(t);plot(t,y),plot(t,y1)hold on,plot(t,y)7/16/2023 29(2)双纵坐标图在实际应用中常常有这样的要求:把同一自变量的两个不同量纲,不同数量级的函数的变化绘制在同一张图上matlab 可以通过以下指令来实现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 绘

22、制成fun1,fun2 指定的两条曲线说明:左纵轴用于x1-y1 数据对,右纵轴用于x2-y2 数据对 轴的范围,刻度都自动产生.若需人工设置,要使用图柄和低 层绘图指令7/16/2023 30例5.2.5-2 画出函数 和积分在区间0,4dx=0.1;x=0:dx:4;y=x.*sin(x);s=cumtrapz(y)*dx;plotyy(x,y,x,s);text(0.5,0,fontsize14 ity=xsinx);sint=fontsize16 intfontsize8 0 x;text(2.5,3.5,fontsize14 its=,sint,fontsize14itxsinxdx

23、);上的曲线7/16/2023 317/16/2023 32(3)多子图matlab 允许用户在同一个图形窗中布置几幅独立的子图,指令为:subplot(m,n,k)-使(mxn)幅子图中的第k 幅成为当前图subplot(position,left,bottom,width,height)-在指定位置上开辟子图,并成为当前图7/16/2023 33说明:subplot(m,n,k)的含义是:图形窗中有mxn 幅子图.K 是子 图的编号,子图序号编排原则:左上方是第1 幅,按行依次排序.第2 种方式产生的子图位置由人工指定,指定位置的四元组 采用归化的标称单位,即认为图形窗的宽,高的取值范围都

24、是 0,1,而左下角为(0,0)坐标 subplot 产生的各子图彼此相互独立,所有绘图指令都可在 子图中运用.7/16/2023 34例5.2.5-3 子图应用subplot(2,3,1),text(0.5,0.5,no.1);subplot(2,3,2),text(0.5,0.5,no.2);subplot(2,3,3),text(0.5,0.5,no.3);subplot(2,3,4),text(0.5,0.5,no.4);subplot(2,3,5),text(0.5,0.5,no.5);subplot(2,3,6),text(0.5,0.5,no.6);7/16/2023 355.2

25、.6 交互式图形指令在matlab 中与鼠标有关的图形操作指令:ginput,gtext,legend(1)ginputx,y=ginput(n)-用鼠标从二维图形上获取n 个点的坐标(x,y)t=0:0.1:5;y=t.2;plot(t,y);xx,yy=ginput(5)(2)gtextgtext(arg)-用鼠标把字符串或字符串数组arg 放置到图形上举例(接上例)gtext(press here)7/16/2023 36(3)legendlegend(arg,pos)-在指定位置上建立图例legend off-擦除当前图上的图例说明:arg 是图例的文字注释,如果要为条曲线创建图例,那

26、么arg 的用法有:目的 arg 的合法格式2 条曲线图例aaa,bbbbaaa;bbbaaa,bbbbaaa;bbbb 输入宗量pos 是图例上位置的指定符,可取下表中的值pos 取值 0 1 2 3 4-1图例位置自动取最 佳位置 右上角(缺省值)左上角 左下角 右下角图右恻 legend 在图形窗中产生后,可以用鼠标对其进行拖拉操作用鼠标左 键按住图形进行拖拉7/16/2023 37举例(接上例):legend(y=x2,0)6.3 三维绘图的基本操作6.3.1 三维线图指令plot3plot3(X,Y,Z,s)plot3(X1,Y1,Z1,s1,X2,Y2,Z2,s2),)说明:X,Y

27、,Z 是同维向量时,则绘制以X,Y,Z 元素为x,y,z 坐标的三维曲线 X,Y,Z 是同维矩阵时,则以X,Y,Z 对应列元素为x,y,z 坐标分别绘制 曲线曲线条数等于矩阵列数 s,s1,s2 的意义与二维情况相同,主要用于指定线型,色彩,数据 点形的选项字符串7/16/2023 38例6.3.1-1 三维曲线绘图t=(0:0.02:2)*pi;x=sin(t);y=cos(t);z=cos(2*t);plot3(x,y,z,b-,x,y,z,bd),view(-82,58),box on,legend(链,宝石)6.3.2 三维网线图和曲面图用途:绘图数据的准备,三维图形的色彩,明暗,光照

28、和视点处理(1)三维图形的数据准备1)确定自变量x,y 的取值范围和取值间距如x=x1:dx:x2;y=y1:dy:y22)构成xy 平面上的自变量格点矩阵X,Y=meshgrid(x,y);3)计算在自变量采样格点上的函数值,即Z=f(X,Y)7/16/2023 39(2)网线图,曲面图基本指令格式mesh(Z)-以Z 矩阵列,行下标为x,y 轴自变量,画网线图mesh(X,Y,Z)-最常用的网线图调用格式mesh(X,Y,Z,C)-最完整的格式,画由C 指定用色的网线图surf(Z)-以Z 矩阵列,行下标为x,y 轴自变量,画曲面图surf(X,Y,Z)-最常用的曲面图调用格式surf(X

29、,Y,Z,C)-最完整的调用格式,画由C 指定用色的曲面图说明:在最完整的调用格式中,四个输入宗量都是维数相同的矩阵.X,Y 是自变量 格点矩阵,Z 是格点上的函数矩阵.指定点的用色,可以缺省,此时取C=Z.单输入宗量格式绘图时,把Z 矩阵的列下标当作x 坐标轴的自变量,把Z 的行 下标当作y 坐标轴的自变量7/16/2023 40例6.3.2-1 用曲面图形表现函数z=x2+y2x=-4:4;y=x;X,Y=meshgrid(x,y);%生成x-y 坐标格点矩阵Z=X.2+Y.2;%计算格点上的函数值surf(X,Y,Z);%绘制曲面hold on;colormap(hot)stem3(X,

30、Y,Z,bo)%用来表现在格点上计算函数值6.3.3 透视,镂空和裁切(1)图形的透视matlab 在采用缺省设置画mesh 图形时,对叠压在后面的图形采取了消隐措施,若需要透视效果,可以通过相关的指令来实现hidden off-透视被叠压的图形hidden on-消隐被叠压的图形7/16/2023 41例6.3.3-1 透视演示X0,Y0,Z0=sphere(30);X=2*X0;Y=2*Y0;Z=2*Z0;surf(X0,Y0,Z0);shading interp;hold on;mesh(X,Y,Z),colormap(hot),hold offhidden off;axis equal

31、,axis off(2)图形的镂空例6.3.3-2 演示如何利用非数NaN 对图形进行镂空处理P=peaks(30);surfc(P);%完整的图形P(18:20,9:15)=NaN;%进行镂空处理surfc(P);%镂空后的图形colormap(summer);light(position,50,-10,5);lighting flatmaterial(0.9,0.9,0.6,15,0.4)7/16/2023 42(3)裁切由NaN 处理的图形不会产生切面,为了看清图形而需要表现切面,那么应该把被切部分强制为零例6.3.3-3 表现切面x=-8:2:8;y=x;X,Y=meshgrid(x,

32、y);ZZ=X.2-Y.2;ii=find(abs(X)6|abs(Y)6);%确定超出-6,6 范围的格点下标ZZ(ii)=zeros(size(ii);%强制为0surf(X,Y,ZZ),shading interp;colormap(copper)light(position,0,-15,1);lighting phongmaterial(0.8,0.8,0.5,10,0.5)7/16/2023 436.4 动态图形1)色图的变幻matlab 为颜色的动态变化提供了一个指令spinmap.它的功能是使当前的色图做循环变化,以产生动画效果该指令不涉及图形对象特性的操作,只限于对色图的操作该

33、指令只对256 色设置有效spinmap-使色图周期旋转3sspinmap(t)-使色图周期旋转tsspinmap(inf)-使色图无限制旋转下去,用Ctrl+C 键终止旋转spinmap(t,inc)-分别用t,inc(缺省为2)控制色图旋转的时间和快慢2)影片动画matlab 支持影片动画(movie):先把一组二维或三维图形存储起来,然后再把这组图形回放7/16/2023 44M(i)=getframe-对当前图形拍照后产生的数据向量依次存放于画面 结构数组中.movie(M,k)-以不超过每秒12 帧的速度把M 中的画面播放k 次.说明:由M(i)=getframe 所产生的M(i)是

34、一个结构数组,它有两个域:M(i).cdata 和M(i).colormap 动画的几个典型的产生方法:(1)改变某参数,获得一组画面,如驻波,行 波的产生.(2)对产生的某三维图形,改变观察角,获得一组画面.(3)对 产生的某三维图形,运用rotate 旋转指令,获得一组画面7/16/2023 45例6.4-1 三维图形的影片动画shg;x=3*pi*(-1:0.05:1);y=x;X,Y=meshgrid(x,y);R=sqrt(X.2+Y.2)+eps;Z=sin(R)./R;h=surf(X,Y,Z);colormap(jet);axis off;n=12;mmm=moviein(n)

35、;for i=1:nrotate(h,0 0 1,15);%使图形绕Z 轴旋转25/每次mmm(:,i)=getframe;%捕获画面endmovie(mmm,20,10)%以每秒10 帧速度重复播放20 次7/16/2023 466.5 三维图形的精细控制(1)视点控制改变观察点是获得较好三维视觉效果的一个重要途径view(az,el)-通过方位角,俯视角设置视点.view(vx,vy,vz)-通过直角坐标设置视点.(2)色彩控制1)用色风格colordef optionscolordef(fig,options)h=colordef(new,options)whitebgwhitebg(fig)whitebg(C)7/16/2023 47

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁