《Matlab数据可视化.ppt》由会员分享,可在线阅读,更多相关《Matlab数据可视化.ppt(95页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、视觉是人们感受世界、认识自然的最重要依靠。数据可视化的目的在于:通过图形,从一堆杂乱的离散数据中观察数据间的内在关系,感受由图形所传递的内在本质。MATLAB一向注重数据的图形表示,并不断地采用新技术改进和完备其可视化功能。MATLAB语言除了有强大的矩阵处理功能之外,它的绘图功能也是相当强大的。它丰富的图形表现方法,使得数学计算结果可以方便地、多样性地实现4.1 二二维绘图4.2 三三维绘图4.3 图形修形修饰方法方法4.4 动画制作画制作4.5 图形窗口介形窗口介绍4.1 二二维绘图4.1.1 plot 最基本的二最基本的二维图形指令形指令1.plot的功能:的功能:plot命令自动打开一
2、个图形窗口Figure。用直线连接相邻两数据点来绘制图形。根据图形坐标大小自动缩扩坐标轴,将数据标尺及单位标注自动加到两个坐标轴上,可自定坐标轴,可把x,y 轴用对数坐标表示。如果已经存在一个图形窗口,plot命令则清除当前图形,绘制新图形。可单窗口单子图绘图;可单窗口多子图绘图;可多窗口单子图分图绘图;可多窗口多子图绘图。可任意设定曲线颜色和线型。可给图形加坐标网线和图形加注功能。2.plot的的调用格式用格式 plot(x)缺省自变量绘图格式,x为向量,以x元素值为纵坐标,以相应元素下标为横坐标绘图。如果x为复变量时,MATLAB会把x的实部作为横轴变量,虚部作为纵轴变量。plot(x,y
3、)基本格式,(a)x,y都是以n维向量,以y(x)的函数关系作出直角坐标图,如果 y是复变量,虚部将被丢弃。(b)如果y为nm的矩阵,则以 n维向量 x为自变量,作出m条曲线。或者以 m维向量 x为自变量,作出n条曲线。(c)如果x,y为nm的矩阵,则以 x第i列为自变量,y第i列为因变量,作出m条曲线。则以 m维向量 x为自变量,作出n条曲线。(d)plot(x1,y1,x2,y2),多条曲线绘图格式(e)plot(x,y,s),字符串s设定曲线颜色和绘图方式,如:plot(x1,y1,y*,x2,y2,ro,)S 的的标准准设定定值如下:如下:字母字母颜色颜色字符字符线型线型字符字符线型线
4、型y黄色点线v下三角g绿色:虚线 上三角w白色-.(-)点划线 右三角m粉红xX标记square 正方形c亮蓝+标记diamond 菱形r大红*标记pentagram 五角星b蓝色-实线 hexagram六角星a.单窗口窗口单子子图绘图 I 单曲曲线x=0,0.48,0.84,1,0.91,0.6,0.14plot(x)t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);plot(t,y,t,y1,t,y2)legend(y,y1,y2)II 多曲线y3=cos(t);y4=cos(t+0.25);y5=cos(t+0.5);plot(t
5、,y3,r);hold on;plot(t,y4,y);plot(t,y5,b);legend(y3,y4,y5)hold on/off命令控制是保持原有图形还是刷新原有图形,不带参数的hold命令在两种状态之间进行切换。III 双曲线双坐标绘图t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5)+5;plotyy(t,y1,t,y2)b.单窗口多子窗口多子图绘图 subplot(m,n,p)将当前图形窗口分割为mn个子图,清除第p个子图处图形,在此处绘图。cla 清除当前子图处图形 按从左至右,从上至下排列 subplot(2,2,1);
6、plot(t,y3,r);title(1);plot(t,y3,r);title(y3);subplot(2,2,2);plot(t,y4,b);title(y4);subplot(2,2,3);plot(t,y5,g);title(y5);subplot(2,2,3:4);plot(t,y5,g);title(y5);c.多窗口多窗口绘图 figure(n),创建窗口函数,n为窗口顺序号。clf(figure(n),清除第n个图形窗内容Close,关闭当前图形窗口,close all关闭所有图形窗口。t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin
7、(t+0.5);plot(t,y,r)%自动出现第一个窗口figure(2)plot(t,y1,b)%在第二窗口绘图figure(3)plot(t,y2,g)%在第三窗口绘图d.可任意设置颜色与线型plot(t,y,r-,t,y1,g:,t,y2,b*)e.图形加注功能形加注功能 将标题、坐标轴标记、网格线及文字注释加注到图形上,这些函数为:title 给图形加标题 xlable 给x轴加标注 ylable 给y轴加标注 text 在图形指定位置加标注 gtext 用鼠标将标注加到图形任意位置 grid on(off)打开、关闭坐标网格线 legend 添加图例 axis 控制坐标轴的刻度例:
8、t=0:0.1:10;y1=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 squaref.函数中的函数中的说明文字明文字 除使用标准的ASCII字符外,还可使用LaTeX格式的控制字符,这样就可以在 图 形 上 添 加 希 腊 字 母、数 学 符 号 及 公 式 等 内 容。例 如,text(0.3,0.5,sin(omegat+be
9、ta)将得到标注效果sin(t+)。alphaupsilonsim wedgecapcupbetaphileqrceil supseteqintgammachiinftyveetaucong deltapsiclubsuitlangleequivapproxepsilon omegadiamondsuittimesx xIm Re zetaGammaheartsuitsurdotimes oplusetaDeltaspadesuit0 neqsubseteqthetaThetaleftrightarrowmid|aleph invartheta Lambdaleftarrowlfloor wp
10、 lceil iotaXiuparrowperposlash supset kappaPirightarrowvarpirhoforalllambdaSigmadownarrowranglesigmaexistsmu Upsilon circ cdotvarsigma ni nuPhipmneg partialldots.xiPsigeqobullet prime piOmegaproptonabladivcopyright subsetrfloor g.axis函数的函数的调用格式用格式为:axis(xmin xmax ymin ymax zmin zmax)axis函数功能丰富,常用的格式
11、还有:axis equal:纵、横坐标轴采用等长刻度。axis square:产生正方形坐标系(缺省为矩形)。axis auto:使用缺省设置。axis off:取消坐标轴。axis on:显示坐标轴。4.1.2 fplot 绘制函数制函数图函数函数 在实际应用中,用户可能不知道函数随自变量变化的趋势,此时如果采用plot绘图,可能会因为自变量的取值间隔不合理而不能反映出自变量在某一区间内函数的变化情况。如果把间隔取小一些,计算量变大。fplot就可以很好的解决这个问题。它通过内部的算法来动态决定自变量的取值间隔。fplot的调用格式:fplot(fun,lims)绘制函数fun在x区间lim
12、s=xmin xmax的函数图。fplot(fun,lims,corline)以指定线形绘图。fun=(x)sin(1./tan(pi*x)*200;fplot(fun,-0.1 0.1,r)4.1.3 ezplot 隐函数函数绘图 MATLAB提供了一个ezplot函数绘制隐函数图形,自动生成标题,下面介绍其用法。(1)对于函数f=f(x),ezplot函数的调用格式为:ezplot(f):在默认区间-2x2绘制f=f(x)的图形。ezplot(f,a,b):在区间axb绘制f=f(x)的图形。ezplot(fun,-0.1,0.1)(2)对于隐函数f=f(x,y),ezplot函数的调用格
13、式为:ezplot(f):在默认区间-2x2和-2y2绘制f(x,y)=0的图形。ezplot(f,xmin,xmax,ymin,ymax):在区间xminxxmax和yminyymax绘制f(x,y)=0的图形。ezplot(f,a,b):在区间axb和ay b绘制f(x,y)=0的图形。(3)对于参数方程x=x(t)和y=y(t),ezplot函数的调用格式为:ezplot(x,y):在默认区间0t2绘制x=x(t)和y=y(t)的图形。ezplot(x,y,tmin,tmax):在区间tmin t subplot(1,2,1);plot(x,y);title(plot)subplot(1
14、,2,2);fill(x,y,r);title(fill)4.1.5 特殊二特殊二维绘图函数函数 bar 绘制直方图 polar 绘制极坐标图 hist 绘制统计直方图 stairs 绘制阶梯图 stem 绘制火柴杆图 rose 绘制统计扇形图 comet 绘制彗星曲线 errorbar 绘制误差棒图 compass 复数向量图(罗盘图)feather 复数向量投影图(羽毛图)quiver 向量场图 area 区域图 pie 饼图 convhull 凸壳图 scatter 离散点图例,绘制阶梯曲线x=0:pi/20:2*pi;y=sin(x);stairs(x,y)例:绘制极坐标绘图 t=0:
15、2*pi/90:2*pi;y=cos(4*t);polar(t,y)例:绘制火柴杆绘图 t=0:0.2:2*pi;y=cos(t);stem(t,y)例:绘制直方图 t=0:0.2:2*pi;y=cos(t);bar(t,y)例:绘制彗星曲线图(动态)t=-pi:pi/500:pi;y=tan(sin(t)-sin(tan(t);comet(t,y)例填满绘图区域 x=magic(6);area(x)饼图 x=1 2 3 4 5 6 7;y=0 0 0 1 0 0 0;pie(x)pie(x,y)添加标签pie(x,y,north,south,east,west,middle,far,near
16、)对数直角坐数直角坐标系系Loglog 给出x,y轴均为log10的对数图Semilogx 给出x轴为log10刻度,y为线性刻度图Semilogy 给出y轴为log10刻度,x为线性刻度图 x=1:0.1:2;y=exp(x);subplot(2,2,1)plot(x,y)title(plot(x,y)subplot(2,2,2)loglog(x,y)title(loglog(x,y)subplot(2,2,3)semilogx(x,y)title(semilogx(x,y)subplot(2,2,4)semilogy(x,y)title(semilogy(x,y)4.2 三三维绘图三维绘图
17、的主要功能:绘制三维线图 绘制等高线图 绘制伪彩色图 绘制三维网线图 绘制三维曲面图、柱面图和球面图 绘制三维多面体并填充颜色4.2.1 三三维线图plot3 基本的三维图形指令调用格式:plot3(x,y,z),x,y,z是长度相同的向量plot3(x,y,z),x,y,z是维数相同的矩阵plot3(x,y,z,s),带开关量plot3(x1,y1,z1,s1,x2,y2,z2,s2,)二维图形的所有基本特性对plot3全都适用。定义三维坐标轴大小 axis(xmin xmax ymin ymax zmin zmax)grid on(off)绘制三维网格 text(x,y,z,string)
18、三维图形标注 子图和多窗口也可以用到三维图形中例:绘制三维线图t=0:pi/50:10*pi;plot3(t,sin(t),cos(t),r:)4.2.2 三维网格图1.mesh 三三维网网线绘图函数函数调用格式:mesh(z),z为nm的矩阵,x与y坐标为元素的下标 mesh(x,y,z),x,y,z分别为三维空间的坐标位置网格矩阵的生成网格矩阵的生成 X,Y=meshgrid(x,y)X,Y=meshgrid(x)X,Y,Z=meshgrid(x,y,z)X,Y=meshgrid(1:3,10:14)X=1 2 3 1 2 3 1 2 3 1 2 3 1 2 3Y=10 10 10 11
19、11 11 12 12 12 13 13 13 14 14 14 46x1x2x3y1(x1,y1)(x2,y1)(x3,y1)y2(x1,y2)(x2,y2)(x3,y2)y3(x1,y3)(x2,y3)(x3,y3)利用eps避开奇点,subplot(2,2,1),R=sqrt(X.2+Y.*Y);z=sin(R)./R;mesh(z);subplot(2,2,2),R=sqrt(X.2+Y.*Y)+eps;z=sin(R)./R;mesh(z);2 surf 三三维曲面曲面图与三维网线图mesh的区别:网线图:线条有颜色,线条之间曲面是白色的。曲面图:线条是黑色的,线条之间曲面空挡有颜色
20、调用格式与mesh相同:surf(x,y,z)绘制三制三维曲面曲面图,x,y,z为图形坐形坐标向量向量 x,y,z=peaks(30);subplot(1,2,1);mesh(x,y,z);subplot(1,2,2);surf(x,y,z);surfc(X,Y,Z)带等高等高线的曲面的曲面图 X,Y,Z=peaks(30);surfc(X,Y,Z)3 surfl(X,Y,Z)被光照射带阴影 的曲面图X,Y,Z=peaks(30);surfl(X,Y,Z)3 cylinde(r,n)三三维柱面柱面绘图函数函数 高度为1,半径为r;柱面圆周等分数为n例:绘制三维陀螺锥面t1=0:0.1:0.9;
21、t2=1:0.1:2;r=t1-t2+2;x,y,z=cylinder(r,30);surf(x,y,z);grid4 Sphere(n)生成生成单位球体,位球体,n为球面等分数,球面等分数,缺省缺省为20例:绘制三维球面Axis equal;sphere(30)4.3 图形修形修饰方法方法4.3.1 图形形颜色的修色的修饰matlab 有极好的颜色表现功能,其颜色数据又构成了一维新的数据集合,也可称为四维图形。colormap(MAP)色图设定函数,图形颜色可根据需要任意生成,也可用matlab配备的色图函数色图(Color map)是MATLAB系统引入的概念。在MATLAB中,每个图形窗
22、口只能有一个色图。色图是m3 的数值矩阵,它的每一行是RGB三元组。色图矩阵可以人为地生成,也可以调用MATLAB提供的函数来定义色图矩阵。MATLAB中图形不同位置按照其在彩色条中相对应的位置的颜色来着色。matlab 的色图函数:hsv 饱和值色图 gray 线性灰度色图 hot 暖色色图 cool 冷色色图 bone 兰色调灰色图 copper 铜色色图 pink 粉红色图 prism 光谱色图 jet 饱和值色图II flag 红、白、蓝交替色图56颜色映像理解Red(红红)Green(绿绿)Blue(蓝蓝)颜颜 色色000黑111白100红010绿001蓝110黄101洋红011青蓝
23、2/301天蓝11/20橘黄0.500深红0.50.50.5灰色4.3.2 网格修饰,1.shading faceted 缺省方式命令将每个网格片用其高度对应的颜色进行着色,但网格线仍保留着,其颜色是黑色。这是系统的缺省着色方式。2 shading flat 去掉黑色线条,命令将每个网格片用同一个颜色进行着色,且网格线也用相应的颜色,从而使得图形表面显得更加光滑。3 shading interp 颜色整体改变,根据小方块四角的值差补过度点的值确定颜色更换对应的色图 colormap(hot)X,Y,Z=peaks(30);surf(X,Y,Z)shading interp;colormap(c
24、ool);axis off%不显示坐标轴peaks(30);colormap(hot);colorbar(horiz);colorbar(vert)%显示彩色条 colorbar off%关闭彩色条显示。彩色条默认对应第三维变量Z,增加第四维变量可以更改彩色条对应关系。Z=peaks;subplot(1,2,1)surf(Z)shading interp;colorbar title(彩色条对应Z高度)subplot(1,2,2)surf(Z,gradient(Z);shading interp;colorbar;title(彩色条对应Z梯度)4.3.2 图形效果修饰透视与消隐 用于网线图裁剪
25、修饰 用于网线图、曲面图视角修饰 观察不同角度的三维视图其它修饰:a.水线修饰 b.等高线修饰 c.伪彩色1 透视与消隐p=peaks(30);mesh(p);hidden off2 裁减修饰p=peaks;p(30:40,20:30)=nan;surf(p)3 视角修饰(函数view(az,el)az-方位角;el-俯视角 省缺值为:az=-37.5;el=30例。观察不同视角的波峰图形z=peaks(40);subplot(2,2,1);surf(z);subplot(2,2,2);surf(z);view(-15,60);subplot(2,2,3);surf(z);view(-90,0
26、);subplot(2,2,4);surf(z);view(-7,-10);4其它修饰:a.水线修饰 waterfall(p)b.等高线修饰二维contour(z,n)-绘制n条等高线c=contourc(z,n)-计算n条等高线的坐标clable(c)-给等高线加标注例、在二维平面上绘制peaks函数的10条等 高线contour(peaks,10);c=contourc(peaks,10);clabel(c)三维等高线contour3(peaks,20)c 伪彩色图Pcolor(p)常用于以二维平面图表现三维图形的效果,用颜色表示三维图形的高度。4.4 动画制作画制作4.4.1 帧动画画
27、MATLAB提供getframe、moviein和movie函数进行动画制作。1getframe函数getframe函数可截取一幅画面信息(称为动画中的一帧),一幅画面信息形成一个很大的列向量。显然,保存n幅图面就需一个大矩阵。2moviein函数moviein(n)函数用来建立一个足够大的n列矩阵。该矩阵用来保存n幅画面的数据,以备播放。之所以要事先建立一个大矩阵,是为了提高程序运行速度。(可不用)3movie函数movie(m,n,fps)以fps帧速度播放由矩阵m所定义的画面n次,缺省时播放一次。利用重新绘图的方法创建动画z=peaks;surf(z)axis tight%坐标轴范围与数
28、据一致set(gca,nextplot,replacechildren);%更新方式,坐标轴不变,只更新图形m=moviein(20);%建立一个20列大矩阵for j=1:20 surf(sin(2*pi*j/20)*z,z)%色图与第一张一致m(:,i)=getframe;%将图形保存到m矩阵end movie(m,2,0.5);%0.5帧每秒播放画面2次注意:占用空间很大!whos Name Size Bytes Class Attributes j 1x1 8 double m 1x20 8953708 struct z 49x49 19208 double 4.4.2 程序动画程序动
29、画 利用重新绘图的方法创建动画,drawnow 命令,是用于刷新屏幕的。当你的代码执行时间长,需要反复执行plot时,Matlab程序不会马上把图像画到figure上,这时,要想实时看到图像的每一步变化情况,需要使用这个语句。z=peaks;surf(z)axis tight;set(gca,nextplot,replacechildren);for j=1:200 surf(sin(2*pi*j/20)*z,z)drawnowend4.5 图形窗口介绍4.5.1 File菜单菜单FileSave as 可以把可以把MATLAB图形存储为各种格式图形存储为各种格式4.5.2 Edit菜单1 E
30、ditCopy Options 拷贝成位图模式bitmap所占空间最小但是缩放会失真,选择中间项。2.EditFigure Properties或者鼠标点击工具栏白箭头后,点击图形窗口的空白处色图图形窗口标题背景色图形窗口属性3.EditAxes Properties或者鼠标点击工具栏白箭头后,点击图形窗口的坐标轴X轴标签反转X轴X轴刻度标签网格线坐标轴标签的文字格式4.EditCurrent Object Properties或者鼠标点击工具栏白箭头后,点击图形窗口中的图形曲面图形修饰方式5 EditColormap 色图编辑4.5.3 View菜单,打开各种工具栏和控制面板Figure T
31、oolbarPlot Edit ToolbarCamera Toolbar很多命令可以通过这些直观的图标工具来实现,完成大部分图形处理工作。例如:在命令窗口输入clear;clc;t=0:0.1*pi:2*pi;y=sin(t)+3;figure;%打开一个空白图形窗口在view菜单中点击图形面板Figure Palette和绘图浏览器Plot Browser。在图形窗口中划分二维或者三维的子图a 选定变量绘图1.选定子图2.选定变量3.选定绘图方式1.选定子图2.添加数据3.选择绘图方式4.选定变量来源b 添加变量绘图4.5.4 Tools 工具菜工具菜单1.ToolsBasic Fitting 数据多数据多项式式拟合和插合和插值结果果2.ToolsData Statistics 数据统计学数据