数据和函数的可视化概述和方法_第1页
数据和函数的可视化概述和方法_第2页
数据和函数的可视化概述和方法_第3页
数据和函数的可视化概述和方法_第4页
数据和函数的可视化概述和方法_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据和函数的可视化概述和方法matlab语言丰富的图形表现方法,使得数学计算结果可以方便地、多样性地实现了可视化,这是其它语言所不能比拟的。matlab语言的绘图功能 不仅能绘制几乎所有的标准图形,而且其表现形式也是丰富多样的。 matlab语言不仅具有高层绘图能力,而且还具有底层绘图能力句柄绘图方法。 在面向对象的图形设计基础上,使得用户可以用来开发各专业的专用图形。6.1 引导6.1.1 离散数据和离散函数的可视化6.1.2 连续函数的可视化6.1.3 可视化的一般步骤6.2 二维曲线绘图的基本操作6.2.1 plot命令基本调用格式6.2.2 曲线的色彩、线型和数据点型6.2.3 坐标、

2、刻度和分格线6.2.4 图形标志6.2.5 多次叠绘、双纵坐标和多子图6.2.6 交互图形指令6.2.1 plot命令基本调用格式(1)plot 最基本的二维图形指令plot的功能: plot命令自动打开一个图形窗口Figure 用直线连接相邻两数据点来绘制图形根据图形坐标大小自动缩扩坐标轴,将数据标尺及单位标注自动加到两个坐标轴上,可自定坐标轴,可把x, y 轴用对数坐标表示plot的调用格式 plot(x) 缺省自变量绘图格式,x为向量, 以x元素值为纵坐标,以相应元素下标为横坐标绘图 plot(x,y) 基本格式,以y(x)的函数关系作出直角坐标图,如果y为nm的矩阵,则以x 为自变量,

3、作出m条曲线plot(x1,y1,x2,y2) 多条曲线绘图格式 plot(x,y,s) 开关格式,开关量字符串s设定曲线颜色和绘图方式,使用颜色字符串的前13个字母,如 yellowyel表示等。或plot(x1,y1,s1,x2,y2,s2,)6.2.2 曲线的色彩、线型和数据点型1.色彩和线型色彩:符号:b , g , r , c , m , y , k , w 含义:蓝 绿 红 青 品 黄 黑 白线型:符号: - , : , -. , - 含义:实线 虚线 点划 双划 6.2.2 曲线的色彩、线型和数据点型2.数据点型符号含义符号含义.实心黑点d菱形+十字符h六角心符*八线符o空心圆圈

4、朝上三角符p五角星符朝右三角符x叉字符v朝下三角符【例6.2.2.2-1】用图形演示平面上一个方块四个顶点在仿射投影(Affine Projection)下的位置、形状变化。分别实现矩阵平移、旋转和刻度变换%平面上四个点和它们构成的方块p1=-0.5,0,1;p2=-0.5,1,1;p3=0.5,1,1;p4=0.5,0,1;Sq=p1,p2,p3,p4,p1;%平移投影:dx=0.5;dy=1;T=1,0,dx;0,1,dy;0,0,1;%旋转投影:逆时针旋转30th=pi/6;R=cos(th),-sin(th),0;sin(th),cos(th),0;0,0,1;%刻度投影:alpha=

5、2;beta=3;S=alpha,0,0;0,beta,0;0,0,1;E=eye(3,3); %TRS=E,T,R,S; ss=r,rd,rp,rh; tt=Original Square,Translation,Rotation,Scaling;for i=1:4W=TRSi*Sq; %进行仿射变换subplot(2,2,i)for k=1:4plot(W(1,k),W(2,k),ssk); % 用不同点形标志四个顶点axis(-3,3,-1,5),axis equalhold onendplot(W(1,:),W(2,:) % 连接四个顶点使得图形封闭grid on %title(tti

6、) %hold off %end6.2.3 坐标、刻度和分格线控制1、坐标控制2、刻度、分格线和坐标框坐标控制【例6.2.3.1-1】观察各种轴控制指令的影响。演示采用长轴为,短轴为1.15 的椭圆。注意:采用多子图表现时,图形形状不仅受“控制指令”影响,而且受整个图面“宽高比”及“子图数目”的影响。本书这样处理,是出于篇幅考虑。读者欲想准确体会控制指令的影响,请在全图状态下进行观察。(图)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(Norma

7、l 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,grid 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 offtitle(Image and Fill)subplot(2,3,6),plot(x,y),axis tight

8、,box off,title(Tight)2、刻度、分格线和坐标框(1)刻度设置set(gca,xtick,xs,ytick,ys,ztick,zs);set(gca,xticklabel,sx,);(2)分格线gridgrid on(off)(3)坐标框boxbox on(off)【例6.2.3.2-1】通过绘制二阶系统阶跃响应,综合演示图形标识。本例比较综合,涉及的指令较广。请读者耐心读、实际做、再看例后说明,定会有匪浅收益。(图6.2-7 )clf;t=6*pi*(0:100)/100;y=1-exp(-0.3*t).*cos(0.7*t);tt=t(find(abs(y-1)0.05)

9、;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(it y = 1 - e -alphatcosomegat) %text(13.5,1.2,fontsize12alpha=0.3) %text(13.5,1.1,fontsize12omega=0.7) %hold on;plot(ts,0.95,bo,MarkerSize,10);hold offcell_string1=fonts

10、ize12uparrow;cell_string2=fontsize16 fontname隶书镇定时间;cell_string3=fontsize6 ;cell_string4=fontsize14rmt_s = num2str(ts);text(ts,0.85,cell_string)xlabel(fontsize14 bft rightarrow)ylabel(fontsize14 bfy rightarrow)latextext=(s,p)(text(Interpreter,latex,String,s,Position,p,fontsize,14);latextext($-pi$,-p

11、i-.25,-1.1);latextext($-fracpi2$,-pi/2-.25,-1.1);latextext($fracpi2$,pi/2-.1,-1.1);latextext($pi$,pi-.1,-1.1);set(gca,xtick,-pi -pi/2 0 pi/2 pi);set(gca,xticklabel, 0 );axis(-pi pi, -1 1);6.2.4 图形标识1、简捷指令形式titlexlabel, ylabel, zlabellegend(s1,s2,)text(xt,yt,s)2.精细指令形式(1)允许标识多行字符指令arg取值 举 例示例指令效果单行ar

12、g任何合法字符Single lineSingle line多行arg1, arg2元胞数组,标志,Multiline元胞数组标志Multilinearg1; arg2元 胞 数 组;标 志;Multiline元 胞 数 组标 志Multiline(2)允许标识字体,风格及大小进行设置字体指令arg取值 举 例示例指令效果名称fontnameargarial;courier;roman;宋体;隶书;黑体fontnamecourierExample 1风格argbf-黑体lt-斜体sl斜体rm正体bfExample 3大小fontsizearg正整数缺省值为0fontsize14 Example

13、5(3)允许使用上下标指令arg取值 举 例示例指令效果上标arg任何合法字符ite-tsint下标_arg任何合法字符xchi_alpha2(3)(4)允许标识希腊字符和其他特殊字符6.2.5 多次叠绘、双纵坐标和多子图1、多次叠绘hold hold on(off)2. 多窗口绘图 figure(n) 创建窗口函数,n为窗 口顺序号。t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);plot(t,y) 自动出现第一个窗口figure(2)plot(t,y1) 在第二窗口绘图figure(3)plot(t,y2) 在第三窗口绘图例:t=

14、0:0.1:10y1=sin(t);y2=cos(t);plot(t,y1,r,t,y2,b-);x=1.7*pi;1.6*pi;y=-0.3;0.8;s=sin(t);cos(t);text(x,y,s);title(正弦和余弦曲线);legend(正弦,余弦)xlabel(时间t),ylabel(正弦、余弦)gridaxis square3.双纵坐标图plotyy(X1,Y1,X2,Y2)plotyy(X1,Y1,X2,Y2,FUN)plotyy(X1,Y1,X2,Y2,FUN1,FUN2)4.多子图subplot 子图分割命令调用格式: subplot(m,n,p) 按从左至右, 从上至

15、下排列subplot(position,left bottom width height) 6.2.6 交互式图形指令ginputx,y=ginput(n)用鼠标从二维图形上获取n个点的数据坐标(x,y).gtextgtext(arg)用鼠标把字符串元胞数组arg放置到图形上.legendlegend(arg,pos); legend off;zoom三维绘图的基本操作6.3.1 三维线图指令plot3三维网线图和曲面图透视、镂空和裁切6.3.1 三维线图指令plot3t=(0:0.02:2)*pi;x=sin(t);y=cos(t);z=cos(2*t);plot3(x,y,z,b-,x,y

16、,z,bd)view(-82,58)box onlegend(链,宝石)三维网线图和曲面图用曲面图表现函数。clf,x=-4:4;y=x;X,Y=meshgrid(x,y);Z=X.2+Y.2;surf(X,Y,Z);hold on,colormap(hot)stem3(X,Y,Z,bo) (1)三维网线图mesh 三维网线绘图函数调用格式: mesh(z) z为nm的矩阵,x与y 坐标为元素的下标 mesh(x,y,z) x,y,z分别为三维空 间的坐标位置三维网线图作图要领生成坐标 X,Y=meshgrid(x,y)表达式点运算 Z=X.2+Y.2X,Y是nm的矩阵,维数可任定X nY m

17、Z默认方位角:37。5,俯角30。nm维 meshgrid 网线坐标值计算函数 z=f(x,y) 根据x,y坐标找出z的高度例:绘制z=x2+y2的三维网线图形 x=-5:5; y=x; X,Y=meshgrid(x,y) Z=X.2+Y.2 mesh(X,Y,Z)坐标矩阵坐标向量纵坐标矩阵绘图函数(2)三维曲面图surf 三维曲面绘图函数,与网格图 看起来一样与三维网线图的区别:网线图:线条有颜色,空挡是黑色的(无颜色)曲面图:线条是黑色的,空挡有颜色(把线条之间的空挡填充颜色,沿z轴按每一网格变化调用格式: surf(x,y,z) 绘制三维曲面图,x,y,z 为图形坐标向量例:X,Y,Z=

18、peaks(30)peaks为matlab自动生成的三维测试图形surf(X,Y,Z) surfc(X,Y,Z) 带等高线的曲面图 X,Y,Z=peaks(30);surfc(X,Y,Z) surfl(X,Y,Z) 被光照射带阴影 的曲面图X,Y,Z=peaks(30);surfl(X,Y,Z)透视、镂空和裁切透视演示X0,Y0,Z0=sphere(30);X=2*X0;Y=2*Y0;Z=2*Z0;surf(X0,Y0,Z0);shading interphold on,mesh(X,Y,Z),colormap(hot),hold offhidden offaxis equal,axis of

19、f 演示:如何利用“非数”NaN,对图形进行镂空处理。P=peaks(30);P(18:20,9:15)=NaN;surfc(P);colormap(summer);light(position,50,-10,5);lighting flat;material(0.9,0.9,0.6,15,0.4) ;表现切面(将切面部分强制为零)clf,x=-8:0.05:8;y=x;X,Y=meshgrid(x,y);ZZ=X.2-Y.2;ii=find(abs(X)6|abs(Y)6);ZZ(ii)=zeros(size(ii);surf(X,Y,ZZ);shading interp;colormap(

20、copper);light(position,0,-15,1);lighting phong;material(0.8,0.8,0.5,10,0.5) 特殊图形和高维可视化特殊图形指令例示四维表现动态图形特殊图形指令例示1.面域图area2.各种直方图bar,barh,bar3,bar3h3.饼图pie,pie34.填色图fill,fill35.射线图compass和羽毛图feather图和三角剖分7.彩带图ribbon8.离散杆图stem,stem39.二维半图指令pcolor,contour,contourf10.散点图scatter,scatter3,plotmatrix11.不规则数据

21、的网线图和曲面图trimesh,trisurf1.面域图areaclf;x=-2:2Y=3,5,2,4,1;3,4,5,2,1;5,4,3,2,5Cum_Sum=cumsum(Y)area(x,Y,0)legend(因素A,因素B,因素C),grid on,colormap(spring) 2.各种直方图bar,barh,bar3,bar3h二维直方图有两种图型:垂直直方图和水平直方图。而每种图型又有两种表现模式:累计式:分组式。本例选其两种加以表现。x=-2:2;Y=3,5,2,4,1;3,4,5,2,1;5,4,3,2,5;subplot(1,2,1),bar(x,Y,stacked)xl

22、abel(x),ylabel(Sigma y),colormap(cool)legend(因素A,因素B,因素C)subplot(1,2,2),barh(x,Y,grouped)xlabel(y),ylabel(x) 3.饼图pie,pie3饼图指令pie , pie3 用来表示各元素占总和的百分数。该指令第二输入宗量为与第一宗量同长的0-1向量,1使对应扇块突出。a=1,1.6,1.2,0.8,2.1;subplot(1,2,1),pie(a,1 0 1 0 0);legend(1,2,3,4,5)subplot(1,2,2),pie3(a,a=min(a),colormap(cool) 4

23、.填色图fill,fill3MATLAB画任意多边形的一种方法;保证绘图数据首尾重合,使勾画多边形封闭;使用图柄对图形的属性进行精细设置。clf;n=10;dt=2*pi/n;t=0:dt:2*pi;t=t,t(1);x=sin(t);y=cos(t);fill(x,y,c);axis offht=text(0,0,fontname隶书fontsize32十边形);set(ht,Color,k,HorizontalAlignment,Center) 射线图compass和羽毛图feather compass和feather指令的区别。t=-pi/2:pi/12:pi/2;r=ones(size

24、(t);x,y=pol2cart(t,r);subplot(1,2,1),compass(x,y),title(Compass)subplot(1,2,2),feather(x,y),title(Feather) 6. Voronoi图和三角剖分clf;rand(state,111) n=30;A=rand(n,1)-0.5;B=rand(n,1)-0.5;T=delaunay(A,B);T=T T(:,1);voronoi(A,B)hold on;axis squarefill(A(T(10,:),B(T(10,:),y);voronoi(A,B) 7.彩带图ribbon x,y = mes

25、hgrid(-3:.5:3,-3:.1:3); z = peaks(x,y); ribbon(y,z)xlabel(X) ylabel(Y) zlabel(Z) colormap hsv 离散杆图stem , stem3 8.二维半图指令pcolor, contour, contourf 伪彩图pcolor ;等位线指令contour、 contourf;等位线标高指令 clabel 的配合使用和区别。(1)本例等位线指令中的第4输入宗量n设定高度的等级数,第5输入宗量设定等位线的线型、色彩。(2)左右两图的标高方法不同。左图的标识以“+”引导,水平放置。右图沿线布置。这是由clabel的调用

26、格式不同产生的。(3)左右两图色彩的形成方法不同,色彩效果也不同。(4)在左图中,colorbar画出一根垂直色标尺,而caxis决定该色标尺的刻度 等高线修饰二维contour(Z,n)-绘制n条等高线C= contourc(Z,n)-计算n条等高线的坐标Clable(c)-给等高线加标注例、在二维平面上绘制peaks函数的10条等 高线contour(peaks,10);C=contourc(peaks,10);clabel(C)clf;clear;X,Y,Z=peaks(40);n=4;subplot(1,2,1),pcolor(X,Y,Z)colormap jet,shading in

27、terphold on,C=contour(X,Y,Z,n,k:);clabel(C)zmax=max(max(Z);zmin=min(min(Z);caxis(zmin,zmax)colorbarhold off,subplot(1,2,2)C,h,CF=contourf(X,Y,Z,n,k:);clabel(C,h) 10.散点图scatter , scatter3 , plotmatrixx=3*pi*(-1:0.2:1);y=x;X,Y=meshgrid(x,y);R=sqrt(X.2+Y.2)+eps;Z=sin(R)./R;C=abs(del2(Z);meshz(X,Y,Z,C);

28、hold on,scatter3(X(:),Y(:),Z(:),filled);hold off,colormap(hot);指令plotmatrix有两种基本调用方式:(1)对于数据矩阵维的X(p*n)和维的Y(p*m),调用格式plotmatrix(X,Y)将画出一个分割成(m*n)个子散点图。其中第(i,j)个子散点图是根据Y第i列和X第j列数据画出的。(2)对于数据矩阵维的X,调用格式plotmatrix(X)将画出分割成(n*n)个子块的图。该图的对角块,画出的是X每列的数据的频数直方图;而其他子块是相应列构成的散点图。 randn(seed,1111)X=randn(100,2);

29、Y=randn(100,2);subplot(1,3,1),plotmatrix(X)subplot(1,3,2),plotmatrix(X,X)subplot(1,3,3),plotmatrix(X,Y) 用三角网线、曲面图表现函数。rand(seed,22),X=6*pi*(rand(20,10)-0.5);Y=6*pi*(rand(20,10)-0.5);R=sqrt(X.2+Y.2)+eps;Z=sin(R)./R;tri=delaunay(X,Y);subplot(1,2,1),trimesh(tri,X,Y,Z)subplot(1,2,2),trisurf(tri,X,Y,Z)co

30、lormap(jet);brighten(0.5) 四维表现1.用色彩表现函数特征2.切片图和切片等位线图3.1.用色彩表现函数特征surf(x,y,z),surf(x,y,z,s)用色图阵表现函数的不同特征。演示:当三维网线图、曲面图的第四个输入宗量取一些特殊矩阵时,色彩就能表现或加强函数的某特征,如梯度、曲率、方向导数等。 2.切片图和切片等位线图利用slice和contourslice 表现MATLAB提供的无限大水体中水下射流速度数据flow 。flow是一组定义在三维空间上的函数数据。本例将动用切片、视角、色彩和透明度等综合手段观察定义在三维空间上的函数。%clf;X,Y,Z,V=f

31、low;x1=min(min(min(X);x2=max(max(max(X);y1=min(min(min(Y);y2=max(max(max(Y);z1=min(min(min(Z);z2=max(max(max(Z);sx=linspace(x1+1.2,x2,5);sy=0;sz=0;slice(X,Y,Z,V,sx,sy,sz);view(-33,36);shading interp;colormap jet;% 以下为透明度设置alpha(color)alphamap(rampdown)alphamap(increase,.1)colorbaraxis off clf;v1=min

32、(min(min(V);v2=max(max(max(V);cv=linspace(v1,v2,15);contourslice(X,Y,Z,V,sx,sy,sz,cv);view(-12,30)colormap jet;colorbar;box on 6.4.3 动态图形1.彗星状轨迹图2.色图的变化3.影片动画彗星状轨迹图 shg;n=10;t=n*pi*(0:0.0005:1);x=sin(t);y=cos(t);plot(x,y,g);axis square;hold oncomet(x,y,0.01);hold off卫星返回地球的运动轨线示意。shg;R0=1;a=12*R0;b=

33、9*R0;T0=2*pi;T=5*T0;dt=pi/100;t=0:dt:T;f=sqrt(a2-b2);th=12.5*pi/180;E=exp(-t/20);x=E.*(a*cos(t)-f);y=E.*(b*cos(th)*sin(t);z=E.*(b*sin(th)*sin(t);plot3(x,y,z,g)X,Y,Z=sphere(30);X=R0*X;Y=R0*Y;Z=R0*Z;grid on,hold on,surf(X,Y,Z),shading interpx1=-18*R0;x2=6*R0;y1=-12*R0;y2=12*R0;z1=-6*R0;z2=6*R0;axis(x1

34、 x2 y1 y2 z1 z2)view(117 37),comet3(x,y,z,0.02),hold off 2.色图的变化peaksspinmap3.动画效果动画生成的步骤创建帧矩阵 moviein对动画中的每一帧生成图形,并把它们放到帧矩阵中 getframe从帧矩阵中回放动画movieclfshg,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);for i=1:n rotat

35、e(h,0 0 1,25); mmm(:,i)=getframe;endmovie(mmm,5,10)三维图形的精细控制、视点控制和图形的旋动、色彩控制 、照明和材质处理 、透明处理、视点控制和图形的旋动1.视点控制viewView(az,el) 通过方位角,俯视角设置azimuth,方位;elevation,俯视角View(vx,vy,vz)通过直角坐标设置、视点控制和图形的旋动2.图形旋动rotateRotate(h,direction,alpha,origin)Direction设置theta,phi,alpha设置旋转角度、色彩控制1.用色风格colordefColordef opti

36、onsWhitebgWhitebg(fig)Whitebg(C)、色彩控制2.色图colormap两种基本着色技术RGB三元组色图矩阵和色图Colormap(CM)CM: autumn,bone,colorcube,cool,.3.浓淡处理shadingShading optionsOptions-flat, interp, facetedcolormap( R,G,B) 色图设定函数matlab 的颜色数据集合为红、绿、兰三颜色矩阵R,G,B,维数m3r,g,b在0 1区间连续取值,理论上颜色种类可达无穷多种matlab使用三维向量表示一种颜色,常用颜色数据见下表 饱和色 0 0 0 黑色

37、0 0 1 兰色 0 1 0 绿色 0 1 1 浅兰 1 0 0 红色 1 0 1 粉红 1 1 0 黄色 1 1 1 白色 调和色0.5 0.5 05 灰色0.5 0 0 暗红色1 0.62 0.4 铜色0.49 1 0.8 浅绿0.49 1 0.83 宝石兰matlab 的色图函数: hsv 饱和值色图 gray 线性灰度色图 hot 暖色色图 cool 冷色色图 bone 兰色调灰色图 copper 铜色色图 pink 粉红色图 prism 光谱色图 jet 饱和值色图II flag 红、白、蓝交替色图6.5.3 照明和材质处理1.灯光lightLight(color,option1,s

38、tyle,option2,position,option3)2.照明模式lightingLighting optionsOptions : flat, gouraud, phong, none3.控制光效果的材质命令materialMaterial optionsshiny,dull,metal,defaultMaterial(ka kd ks n sc)-ka-背景光强度,kd-漫反射强度ks-有向反射强度,n-镜面指数,sc-反射系数指令的精细调用格式Surfl(X,Y,Z,S,K,method)【例6.5.3.4-1】灯光、照明、材质指令所表现的图形。clf;X,Y,Z=sphere(40);colormap(jet)subplot(1,2,1);surf(X,Y,Z);shading interplight (position,2,-2,2,style,local)lighting ph

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论