MATLAB数据可视化课件_第1页
MATLAB数据可视化课件_第2页
MATLAB数据可视化课件_第3页
MATLAB数据可视化课件_第4页
MATLAB数据可视化课件_第5页
已阅读5页,还剩126页未读 继续免费阅读

下载本文档

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

文档简介

第7章MATLAB数据可视化本章详细介绍MATLAB数据可视化和绘图方面的能力讲述的主要内容:基本二维和三维绘图图形基础(续)7.1概述7.2基本二维绘图7.3格式化绘图7.4特殊图形函数7.5基本三维绘图7.6保存和输出图形7.8小结7.1概述

MATLAB的图形功能包括数据可视化数据的可视化不仅仅是二维的,还可以在三维空间展示数据数据或图形的可视化是进行数据处理或者图形图像处理的第一步创建用户图形界面简单数据统计处理概述(续)在MATLAB中进行数据可视化的过程步骤准备需要绘制在MATLAB图形窗体中的数据创建图形窗体,并选择绘制数据的区域使用MATLAB的绘图函数绘制图形或者曲线设置曲线的属性设置绘图区域的属性,并且添加数据网格线为绘制的图形添加标题、轴标签或者标注文本等打印或者导出图形图形基础(续)7.1概述7.2基本二维绘图7.3格式化绘图7.4特殊图形函数7.5基本三维绘图7.6保存和输出图形7.7数据插值和曲线拟合7.8小结7.2基本二维绘图(续)7.2.1基本绘图指令7.2.2设置曲线的样式属性7.2.3使用子图7.2.4控制绘图区域7.2.5图形编辑器基本绘图指令(续)例7-1(1)绘制一条曲线>>x=0:pi/1000:2*pi;>>y=sin(2*x+pi/4);>>plot(x,y)绘制单根二维曲线plot函数的基本调用格式为:plot(x,y)其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。例在0≤x≤2区间内,绘制曲线y=2e-0.5xcos(4πx)程序如下:x=0:pi/100:2*pi;y=2*exp(-0.5*x)*cos(4*pi*x);plot(x,y)请检查程序的错误。y=2*exp(-0.5*x).*cos(4*pi*x);plot函数最简单的调用格式是只包含一个输入参数:plot(x)在这种情况下,当x是实向量时,以该向量元素的下标为横坐标,元素值为纵坐标画出一条连续曲线,这实际上是绘制折线图。>>x=[-2,4,6,2,8,4,9,11]x=-246284911>>plot(x)基本绘图指令(续)(2)绘制多条曲线>>x=0:pi/1000:2*pi;>>y=sin(2*x+pi/4);>>plot(x,y,x,y+1,x,y+2)当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。例7-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)课堂作业2試寫一函數regPolygon(n),其功能為畫出一個圓心在(0,0)、半徑為1的圓,並在圓內畫出一個內接正n邊形,其中一頂點位於(0,1)。例如regPolygon(8)可以畫出如下之正八邊型:课堂作业3試寫一函數regStar(n),其功能為畫出一個圓心在(0,0)、半徑為1的圓,並在圓內畫出一個內接正n星形,其中一頂點位於(0,1)。例如regStar(7)可以畫出如下之正7星型:【例】采用模型画一组椭圆。th=[0:pi/50:2*pi]';a=[0.5:.5:4.5];X=cos(th)*a;Y=sin(th)*sqrt(25-a.^2);plot(X,Y)基本绘图指令(续)例7-2绘制矩阵数据>>A=pascal(5)A=111111234513610151410203515153570>>plot(A)7.2.2设置曲线的样式属性色彩(c)说明时标(m)说明线型(l)说明r红色+加号-实线g绿色O圆圈--虚线b蓝色*星号:点线c青色.点-.点划线m洋红x十字y黄色s矩形k黑色d菱形w白色^上三角v下三角>右三角<左三角p五边形h六边形设置曲线的样式属性(续)若不要将绘制的曲线点连接起来,则使用plot函数时不要指定线型,仅指定时标选项和色彩选项例:>>t=0:pi/20:2*pi;>>y=sin(t);>>y1=sin(t-pi/2);>>y2=sin(t-pi);>>plot(t,y,'cv',t,y1,'ks',t,y2,'om')设置曲线的样式属性(续)设置曲线的样式属性(续)使用命令grid,可以将图形窗体的轴在有网格线和无网格线之间切换gridon——图形窗体的轴显示坐标网格线gridoff——图形窗体的轴不显示坐标网格线例:>>t=0:pi/20:2*pi;>>y=sin(t);>>y1=sin(t-pi/2);>>y2=sin(t-pi);>>plot(t,y,'cv',t,y1,'ks',t,y2,'om')>>gridon设置曲线的样式属性(续)设置曲线的样式属性(续)>>gridoff设置曲线的样式属性(续)使用命令hold,可以将图形窗体在锁定状态与非锁定状态之间进行切换holdon——图形窗体处于锁定状态可以向已经存在曲线的图形窗体中增加曲线holdoff——图形窗体处于非锁定状态任何绘图操作都将清除当前图形窗体已经绘制的内容设置曲线的样式属性(续)例:>>t=0:pi/20:2*pi;>>y=sin(t);>>plot(t,y,'cv-.')设置曲线的样式属性(续)例:>>holdon>>y1=sin(t-pi/2);>>plot(t,y1,'--ks')设置曲线的样式属性(续)例:>>holdoff>>y2=sin(t-pi);>>plot(t,y2,'o:m')例7-6在同一坐标内,分别用不同线型和颜色绘制曲线y1=0.2e-0.5xcos(4πx)和y2=2e-0.5xcos(πx),标记两曲线交叉点。程序如下: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);%查找y1与y2相等点(近似相等)的下标x1=x(k);%取y1与y2相等点的x坐标y3=0.2*exp(-0.5*x1).*cos(4*pi*x1);%求y1与y2值相等点的y坐标plot(x,y1,x,y2,'k:',x1,y3,'bp');设置曲线的样式属性(续)MATLAB可以通过指令clf清除当前窗体的内容MATLAB可以通过指令figure创建新的图形窗体例:>>x=-pi:pi/10:pi;>>y=tan(sin(x))-sin(tan(x));>>plot(x,y,'--r^')设置曲线的样式属性(续)>>clf7.2.3使用子图子图的功能可以将图形窗体划分为多个图形显示区域,每个区域彼此独立。使用子图的方法用subplot函数选择绘制区域subplot函数的基本用法

subplot(m,n,p)m——图形窗体分割的行数

n——图形窗体分割的列数

p——选定的窗体区域的序号

(以行元素优先顺序排列)使用子图(续)例:>>subplot(2,3,3)使用子图(续)例:>>subplot(2,3,4)使用子图(续)例7-5:使用子图——subplotex.m001functionsubplotex002%子图的使用示例003x=0:1:2*pi;004%创建新的图形窗体005figure(1);clf;006%分割窗体为2行2列,分别在不同的区域绘图007subplot(2,2,1);plot(1:10);gridon;008subplot(2,2,2);plot(x,sin(x));gridon;009subplot(2,2,3);plot(x,exp(-x),'r');gridon;010subplot(2,2,4);plot(peaks);gridon;使用子图(续)运行例7-5:使用子图——subplotex.m>>subplotex代码007~010行的图形结果图形基础(续)7.1概述7.2基本二维绘图7.3格式化绘图7.4特殊图形函数7.5基本三维绘图7.6保存和输出图形7.7数据插值和曲线拟合7.8小结7.3格式化绘图格式化绘图是指在MATLAB的图形窗体中,为MATLAB的图形对象添加必要的注释、标题或者其他文本信息本节内容增加文本信息格式化文本标注7.3.1增加文本信息MATLAB图形窗体的文本信息主要包括图形标题文本注释轴标签图例1、添加图形标题使用函数title添加图形标题title(‘string’)标题将被自动地设置在轴的正中顶部例>>title('余弦函数')2、添加图例图例作为绘制轴的数据曲线的说明,默认绘制在轴的右上角处绘制在轴内曲线的色彩、样式和时标在绘制图例的地方为每一个曲线添加简要的说明文字使用函数legend添加轴的图例Legend(‘string1’,’string2’,……)添加图例(续)例>>t=0:pi/20:2*pi;>>y=sin(t);>>y1=sin(t-pi/2);>>y2=sin(t-pi);>>plot(t,y,'cv-.',t,y1,'--ks',t,y2,'o:m')>>gridon>>legend('y=sin(t)','y=sin(t-pi/2)','y=sin(t-pi)')添加图例(续)图例所在的位置可以用鼠标任意地移动3、添加坐标轴标签MATLAB坐标轴的标签用来说明与坐标轴有关的信息,也可以包含各种需要添加的信息MATLAB可以为不同的坐标轴添加不同的坐标信息使用函数xlabel、ylabel、zlabel分别为图形窗体的X轴、Y轴和Z轴添加轴标签xlabel(‘string’)ylabel(‘string’)zlabel(‘string’)添加坐标轴标签(续)例>>t=0:pi/20:2*pi;>>y=sin(t);>>y1=sin(t-pi/2);>>y2=sin(t-pi);>>plot(t,y,'cv-.',t,y1,'--ks',t,y2,'o:m')>>gridon>>xlabel('X轴数据');ylabel('Y轴数据')添加坐标轴标签(续)4、添加文本注释文本注释是由创建图形的用户添加的说明行文字使用函数text向图形窗体添加文本注释text(x,y,’string’)x和y是文本注释添加的坐标值添加文本注释(续)例>>x=0:.1:2*pi;y=sin(x);plot(x,y)>>gridon>>text(pi/3,sin(pi/3),'<--Sin(pi/3)')添加文本注释(续)添加文本注释(续)>>text(pi/3,sin(pi/3),'<--Sin(\pi/3)')图形基础(续)7.1概述7.2基本二维绘图7.3格式化绘图7.4特殊图形函数7.5基本三维绘图7.6保存和输出图形7.7数据插值和曲线拟合7.8小结7.4特殊图形函数绘制特殊的坐标轴系绘制特殊的图形条状图和面积图饼图柱状图离散数据图调色板在进行数理统计时,使用传统的坐标系往往不能直观表现统计模型的特征,人们经一般用对数坐标系来绘制图形。7.4.2绘制特殊图形特殊图形条状图和面积图饼图柱状图离散数据图通过调用特殊图形函数完成特殊图形的绘制条状图和面积图(续)barhbar3h2、饼图饼图是用来显示向量或矩阵元素占用所有元素和的百分比分类二维饼图→用函数pie绘制三维饼图→用函数pie3绘制饼图(续)3、柱状图柱状图是用来显示数据的分布情况可以绘制在普通的直角坐标下,也可以绘制在极坐标下绘制在普通的直角坐标下→使用hist函数绘制在极坐标下→使用rose函数这两个函数分别计算输入向量中数据落入某一范围的数量,绘制的柱状高度或者长度表示落入该范围的数据的个数柱状图(续)4、离散数据图MATLAB提供了一些函数用来绘制离散数据常用的离散数据图有火柴杆图→使用stem函数或者stem3函数阶梯图→使用stairs函数柱状图离散数据图(续)图形基础(续)7.1概述7.2基本二维绘图7.3格式化绘图7.4特殊图形函数7.5基本三维绘图7.6保存和输出图形7.7数据插值和曲线拟合7.8小结7.5基本三维绘图绘制三维图形的基本过程准备需要绘制在MATLAB图形窗体中的数据创建图形窗体,并且选择绘制数据的区域使用MATLAB的3D绘图函数绘制图形或者曲线为绘制的图形添加标题、轴标签或者标注文本等打印或者导出图形基本三维绘图(续)三维图形的主要功能7.5.1绘制三维线图7.5.2绘制三维网线图7.5.3绘制三维曲面图7.5.4图形修饰7.5.1绘制三维线图使用plot3函数绘制三维线图该函数能够将X、Y、Z坐标绘制在三维的空间基本语法:Plot3(xdata1,ydata1,zdata1,’clm1’,xdata2,ydata2,zdata1,’clm2’,……)绘制三维线图(续)例7-14简单三维绘图%PLOT_3D简单三维绘图%准备数据z=0:0.1:40;x=cos(z);y=sin(z);clf;%绘制曲线plot3(x,y,z)plot3函数类似于plot函数,只是它所接收的数据是三维数据。数据准备:x和y向量,z向量。这些有序的“三元组”的数据被绘制在三维空间中,并用直线连接起来。绘制三维线图(续)运行例7-14简单三维绘图>>plot_3d基本三维绘图(续)三维图形的主要功能7.5.1绘制三维线图7.5.2绘制三维网线图7.5.3绘制三维曲面图曲面图使我们可以将数据表示为曲面。mesh图和surf图7.5.2绘制三维网线图使用mesh函数绘制三维网线图调用格式:mesh(z)mesh(x,y,z)

绘制三维网线图(续)mesh(z)

——z为m×n的矩阵(二维矩阵)Z坐标——矩阵中元素的值X与Y坐标——矩阵中元素的下标(各维的大小)X——对应矩阵的列,有n个值Y——对应矩阵的行,有m个值

其绘图效果很好。绘制三维网线图(续)例:>>Z=[123;456]Z=123456>>mesh(Z)X=1,Y=1,Z=1X=1,Y=2,Z=4X=2,Y=1,Z=2X=2,Y=2,Z=5X=3,Y=1,Z=3X=3,Y=2,Z=6↑↑↑列行元素的值返回z=[1,2,3,4,5,6,7,8,9,10;2,4,6,8,10,12,14,16,18,20;3,4,5,6,7,8,9,10,11,12];mesh(z)X轴的值是从0到10,其点坐标对应于矩阵的一行Y轴的值从0到3,其点坐标对应于矩阵的一列绘制三维网线图(续)mesh(X,Y,Z)——X,Y,Z分别为三维空间的坐标位置其中:X,Y,Z是m×n的矩阵 作图要领生成坐标用函数meshgrid(网线坐标值计算函数)生成坐标X,Y[X,Y]=meshgrid(x,y)表达式运算计算坐标Z=F(X,Y)Meshgrid函数的作用是产生以x及y(均为向量)为基准的栅格点,其输出为X及Y,分别代表栅格点的x坐标及y坐标绘制三维网线图(续)例:绘制z=x2+y2的三维网线图x=-5:5;y=x;[X,Y]=meshgrid(x,y)Z=X.^2+Y.^2

mesh(X,Y,Z)坐标矩阵坐标向量坐标矩阵绘图函数绘制三维网线图(续)>>x=-5:5;y=x;>>[X,Y]=meshgrid(x,y);>>Z=X.^2+Y.^2;>>mesh(X,Y,Z)返回x=

-5-4-3-2-1012345y=

-5-4-3-2-1012345X=-5-4-3-2-1012345-5-4-3-2-1012345-5-4-3-2-1012345-5-4-3-2-1012345-5-4-3-2-1012345-5-4-3-2-1012345-5-4-3-2-1012345-5-4-3-2-1012345-5-4-3-2-1012345-5-4-3-2-1012345-5-4-3-2-1012345Y=-5-5-5-5-5-5-5-5-5-5-5-4-4-4-4-4-4-4-4-4-4-4-3-3-3-3-3-3-3-3-3-3-3-2-2-2-2-2-2-2-2-2-2-2-1-1-1-1-1-1-1-1-1-1-1000000000001111111111122222222222333333333334444444444455555555555Z=504134292625262934415041322520171617202532413425181310910131825342920138545813202926171052125101726251694101491625261710521251017262920138545813202934251813109101318253441322520171617202532415041342926252629344150例z=[1,2,3,4,5,6,7,8,9,10;2,4,6,8,10,12,14,16,18,20;3,4,5,6,7,8,9,10,11,12];x=linspace(1,50,10);y=linspace(500,1000,3);[new_x,new_y]=meshgrid(x,y);Mesh(new_x,new_y,z)绘制三维网线图(续)例:绘制的三维网线图>>x=linspace(-2,2,25);>>y=linspace(-2,2,25);>>[X,Y]=meshgrid(x,y);>>Z=X.*exp(-X.^2-Y.^2);>>mesh(X,Y,Z)返回基本三维绘图(续)三维图形的主要功能7.5.1绘制三维线图7.5.2绘制三维网线图7.5.3绘制三维曲面图7.5.4图形修饰7.5.3绘制三维曲面图使用surf函数绘制三维网线图调用格式:surf(z)surf(x,y,z)与三维网线图的区别:网线图:线条有颜色,空挡是无色的曲面图:线条是黑色的,空挡有颜色(把线条之间的空挡填充颜色,沿z轴按每一网格变化)绘制三维曲面图(续)例:绘制z=x2+y2的三维曲面图>>x=-5:5;y=x;>>[X,Y]=meshgrid(x,y);>>Z=X.^2+Y.^2;>>surf(X,Y,Z)和三维曲线比较绘制三维曲面图(续)例:绘制三维曲面图>>x=linspace(-2,2,25);>>y=linspace(-2,2,25);>>[X,Y]=meshgrid(x,y);>>Z=X.*exp(-X.^2-Y.^2);>>surf(X,Y,Z)和三维曲线比较绘制三维曲面图(续)surf函数有一种变形surfc函数绘制具有等高线性质的surf曲面图形基础(续)7.1概述7.2基本二维绘图7.3格式化绘图7.4特殊图形函数7.5基本三维绘图7.6保存和输出图形7.7小结7.6保存和输出图形MATLAB提供了将图形窗体中的内容输出到图形文件,或者将图形打印出来的功能本节内容保存和打开图形文件导出文件拷贝图形文件7.6.1保存和打开图形文件MATLAB提供了一种类似于MAT格式的文件用来保存MATLAB的图形文件,这种文件的扩展名为*.fig扩展名为.fig的图形格式的文件只能在MATLAB中使用保存和打开图形文件(续)保存和打开图形文件的方法保存:在图形窗体中选择“File”菜单下的“Save”命令,或直接单击工具栏上的保存按钮,在弹出的对话框中选择保存类型为.fig,输入文件名,然后单击“保存”按钮

打开:(1)通过菜单命令或工具栏的按钮可以完成操作(2)在MATLAB的CurrentDirectory窗口中双击文件名保存和打开图形文件(续)

打开:使用open函数。Open函数根据文件的扩展名不同而调用相应的辅助函数文件

Open(‘’)图形基础(续)7.1概述7.2基本二维绘图7.3格式化绘图7.4特殊图形函数7.5基本三维绘图7.6保存和输出图形7.7小结7.7小结介绍了MATLAB的基本图形和数据可视化的能力二维和三维数据可视化、各种图形标注和特殊图形的绘制能力介绍了MATLAB丰富的导入、导出数据图形的能力基本的绘图步骤1、准备绘图数据2、选择一个窗口并在窗口中给图形定位3、调用基本的绘图函数4、选择线型和标记特性5、设置坐标轴的极限值、标记符号和网格线6、使用坐标轴标签、图例和文本对图形进行注释7、输出图形。寫一個MATLAB函式myfun.m來計算下列方程式:y=0.5*exp(x/3)-x*x*sin(x)其中x是函式的輸入,y是函式的輸出。你的函式必須能夠處理當x是純量或是向量的兩種情況。此外,請利用下述兩列程式碼來畫出此函數的圖形:x=0:0.1:10;plot(x,myFun(x));一個平面上的橢圓可以表示成下列方程式:(x/a)2+(y/b)2=1我們也可以用參數式將橢圓表示成:x=a*cos(th)

y=b*sin(th)請利用上述參數式,畫出一個橢圓,其中a=5,b=3,而且橢圓上共有100個點。利薩如圖形可用下列參數式來表示:x=cos(m*th)

y=sin(n*th)試畫出在不同m、n值的利薩如圖形:m=n=1m=3,n=2m=10,n=11

使用MATLAB畫一個圓心在原點、半徑等於10的圓,並在圓周上依逆時鐘方向取任意四點A、B、C、D,將線段AB、AC、AD、BC、BD、CD用直線畫出。試寫一函數regPolygon(n),其功能為畫出一個圓心在(0,0)、半徑為1的圓,並在圓內畫出一個內接正n邊形,其中一頂點位於(0,1)。例如regPolygon(8)可以畫出如下之正八邊型:試寫一函數regStar(n),其功能為畫出一個圓心在(0,0)、半徑為1的圓,並在圓內畫出一個內接正n星形,其中一頂點位於(0,1)。例如regStar(7)可以畫出如下之正7星型:一條參數式的曲線可由下列方程式表示:x=sin(t),y=1-cos(t)+t/10當t由0變化到4*pi時,請寫一個MATLAB的腳本plotParam.m,畫出此曲線在XY平面的軌跡。請用寫一個MATLAB腳本figSolve.m,利用圖解法,說明下列聯立方程式有無窮多組解:y=xy=sin(1/x)【例3.1.3.3-2】综合例题:在MATLAB计算生成的图形上标出图名和最大值点坐标。cleara=2;w=3

温馨提示

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

评论

0/150

提交评论