matlab的一些画图技巧.doc_第1页
matlab的一些画图技巧.doc_第2页
matlab的一些画图技巧.doc_第3页
matlab的一些画图技巧.doc_第4页
matlab的一些画图技巧.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

matlab中如何在指定一点画一个填充颜色的小圆plot(1,1,r.,markersize,50)二维作图绘图命令plot绘制x-y坐标图;loglog命令绘制对数坐标图;semilogx和semilogy命令绘制半对数坐标图;polor命令绘制极坐标图基本形式如果y是一个向量,那么plot(y)绘制一个y中元素的线性图假设我们希望画出y=0., 0.48, 0.84, 1., 0.91, 6.14 则用命令:plot(y)它相当于命令:plot(x, y),其中x=1,2,n或x=1;2;n,即向量y的下标编号, n为向量y的长度Matlab会产生一个图形窗口,显示如下图形,请注意:坐标x和y是由计算机自动绘出的图4.1.1.1 plot(0.,0.48,0.84,1.,0.91,6.14) 上面的图形没有加上x轴和y轴的标注,也没有标题用xlabel,ylabel,title命令可以加上如果x,y是同样长度的向量,plot(x,y)命令可画出相应的x元素与y元素的x-y坐标图例:x=0:0.05:4*pi; y=sin(x); plot(x,y)grid on, title( y=sin( x )曲线图 )xlabel( x = 0 : 0.05 : 4Pi )结果见下图图4.1.1.2 y=sin(x)的图形 title图形标题xlabelx坐标轴标注ylabely坐标轴标注text标注数据点grid给图形加上网格hold保持图形窗口的图形 表4.1.1.1 Matlab图形命令 多重线在一个单线图上,绘制多重线有三种办法.第一种方法是利用plot的多变量方式绘制:plot(x1,y1,x2,y2,.,xn,yn)x1,y1,x2,y2,.,xn,yn是成对的向量,每一对x, y在图上产生如上方式的单线多变量方式绘图是允许不同长度的向量显示在同一图形上第二种方法也是利用plot绘制,但加上hold on/off命令的配合:plot(x1,y1)hold onplot(x2,y2)hold off第三种方法还是利用plot绘制,但代入矩阵:如果plot用于两个变量plot(x,y),并且x,y是矩阵,则有以下情况:(1)如果y是矩阵,x是向量,plot(x,y)用不同的画线形式绘出y的行或列及相应的x向量,y的行或列的方向与x向量元素的值选择是相同的(2)如果x是矩阵,y是向量,则除了x向量的线族及相应的y向量外,以上的规则也适用(3)如果x,y是同样大小的矩阵,plot(x,y)绘制x的列及y相应的列还有其它一些情况,请参见Matlab的帮助系统线型和颜色的控制如果不指定划线方式和颜色,Matlab会自动为您选择点的表示方式及颜色您也可以用不同的符号指定不同的曲线绘制方式例如:plot(x,y,*) 用*作为点绘制的图形plot(x1,y1,:,x2,y2,+) 用:画第一条线,用+画第二条线线型、点标记和颜色的取值有以下几种:线型点标记颜色-实线.点y黄:虚线o小圆圈m棕色-.点划线x叉子符c青色-间断线+加号r红色 *星号g绿色 s方格b蓝色 d菱形w白色 朝上三角k黑色 v朝下三角 朝右三角 朝左三角 p五角星 h六角星 表4.1.3.1线型和颜色控制符如果你的计算机系统不支持彩色显示,Matlab将把颜色符号解释为线型符号,用不同的线型表示不同的颜色颜色与线型也可以一起给出,即同时指定曲线的颜色和线型例如: t=-3.14:0.2:3.14;x=sin(t); y=cos(t);plot(t,x, +r,t,y, -b)图4.1.3.1不同线型、颜色的sin,cos图形 对数图、极坐标图及条形图 loglog、semilogx、semilogy和polar的用法和plot相似这些命令允许数据在不同的graph paper上绘制,例如不同的坐标系统先介绍的fplot是扩展来的可用于符号作图的函数 l fplot(fname,lims)绘制fname指定的函数的图形l polar( theta, rho)使用相角theta为极坐标形式绘图,相应半径为rho,其次可使用grid命令画出极坐标网格l loglog 用log10-log10标度绘图l semilogx用半对数坐标绘图,x轴是log10,y是线性的l semilogy用半对数坐标绘图,y轴是log10,x是线性的l bar(x)显示x向量元素的条形图,bar不接受多变量l hist绘制统计频率直方图l histfit(data,nbins)绘制统计直方图与其正态分布拟合曲线 fplot函数的绘制区域为lims=xmin,xmax,也可以用lims=xmin,xmax,ymin,ymax指定y轴的区域函数表达式可以是一个函数名,如sin,tan等;也可以是带上参数x的函数表达式,如sin(x),diric(x,10);也可以是一个用方括号括起的函数组,如sin, cos例1:fplot(sin,0 4*pi)例2:fplot(sin(1 ./ x), 0.01 0.1)例3:fplot(abs(exp(-j*x*(0:9)*ones(10,1),0 2*pi,-o)例4:fplot(sin(x), cos(x) , tan(x),-2*pi 2*pi -2*pi 2*pi) %(图4.1.4.1) 图4.1.4.1 sin,cos,tan函数图形 图4.1.4.2半对数图 下面介绍的是其它几个作图函数的应用例5:半对数坐标绘图t=0.001:0.002:20; y=5 + log(t) + t; semilogx(t,y, b) hold on semilogx(t,t+5, r) % (图4.1.4.2) 例6:极坐标绘图t=0:0.01:2*pi;polar(t,sin(6*t) % (图4.1.4.3) 图4.1.4.3极坐标绘图 图4.1.4.4正态分布的统计直方图与其正态分布拟合曲线 例7:正态分布图我们可以用命令normrnd生成符合正态分布的随机数normrnd(u,v,m,n)其中,u表示生成随机数的期望,v代表随机数的方差运行:a=normrnd(10,2,10000,1);histfit(a) % (图4.1.4.4)我们可以得到正态分布的统计直方图与其正态分布拟合曲线 例8:比较正态分布(图4.1.4.5(1)与平均分布(图4.1.4.5(2)的分布图:yn=randn(30000,1); %正态分布x=min(yn) : 0.2 : max(yn);subplot(121)hist(yn, x)yu=rand(30000,1); %平均分布subplot(122)hist(yu, 25)4.1.4.5(1) 4.1.4.5(2) 图4.1.4.5正态分布与平均分布的分布图在绘图过程中,经常要把几个图形在同一个图形窗口中表现出来,而不是简单地叠加(例如上面的例8)这就用到函数subplot其调用格式如下:subplot(m,n,p)subplot函数把一个图形窗口分割成mn个子区域,用户可以通过参数p调用个各子绘图区域进行操作子绘图区域的编号为按行从左至右编号 例9:绘制子图x=0:0.1*pi:2*pi;subplot(2,2,1)plot(x,sin(x),-*);title(sin(x);subplot(2,2,2)plot(x,cos(x),-o);title(cos(x);subplot(2,2,3)plot(x,sin(2*x),-.*);title(sin(2x);subplot(2,2,4);plot(x,cos(3*x),:d)title(cos(3x)得到图形如下:图4.1.5.1子图利用二维绘图函数patch,我们可绘制填充图绘制填充图的另一个函数为fill下面的例子绘出了函数humps(一个Matlab演示函数)在指定区域内的函数图形例10:用函数patch绘制填充图fplot(humps,0,2,b)hold onpatch(0.5 0.5:0.02:1 1,0 humps(0.5:0.02:1) 0,r);hold offtitle(A region under an interesting function.)grid图4.1.6.1填充图 我们还可以用函数fill来绘制类似的填充图例11:用函数fill绘制填充图x=0:pi/60:2*pi;y=sin(x);x1=0:pi/60:1;y1=sin(x1);plot(x,y,r);hold onfill(x1 1,y1 0,g)图4.1.6.2填充图三维作图mesh(Z)语句可以给出矩阵Z元素的三维消隐图,网络表面由Z坐标点定义,与前面叙述的x-y平面的线格相同,图形由邻近的点连接而成它可用来显示用其它方式难以输出的包含大量数据的大型矩阵,也可用来绘制Z变量函数显示两变量的函数Z=f(x,y),第一步需产生特定的行和列的x-y矩阵然后计算函数在各网格点上的值最后用mesh函数输出下面我们绘制sin(r)/r函数的图形建立图形用以下方法:x=-8:.5:8;y=x;x=ones(size(y)*x;y=y*ones(size(y);R=sqrt(x.2+y.2)+eps;z=sin(R)./R;mesh(z) % 试运行 mesh(x,y,z),看看与mesh(z)有什么不同之处?各语句的意义是:首先建立行向量x,列向量y;然后按向量的长度建立1-矩阵;用向量乘以产生的1-矩阵,生成网格矩阵,它们的值对应于x-y坐标平面;接下来计算各网格点的半径;最后计算函数值矩阵Z用mesh函数即可以得到图形图4.2.1三维消隐图第一条语句x的赋值为定义域,在其上估计函数;第三条语句建立一个重复行的x矩阵,第四条语句产生y的响应,第五条语句产生矩阵R(其元素为各网格点到原点的距离)用mesh方法结果如上另外,上述命令系列中的前4行可用以下一条命令替代:x, y=meshgrid(-8:0.5:8)(1) meshc与函数mesh的调用方式相同,只是该函数在mesh的基础上又增加了绘制相应等高线的功能下面来看一个meshc的例子:x,y=meshgrid(-4:.5:4);z=sqrt(x.2+y.2);meshc(z) % 试运行 meshc(x,y,z),看看与meshc(z)有什么不同之处?我们可以得到图形:图4.2.2.1 meshc 图 地面上的圆圈就是上面图形的等高线(2)函数meshz与mesh的调用方式也相同,不同的是该函数在mesh函数的作用之上增加了屏蔽作用,即增加了边界面屏蔽例如:x,y=meshgrid(-4:.5:4);z=sqrt(x.2+y.2);meshz(z) % 试运行 meshz(x,y,z),看看与meshz(z)有什么不同之处?我们得到图形:图4.2.2.2 meshz 图 (1)在Matlab中有一个专门绘制圆球体的函数sphere,其调用格式如下:x,y,z=sphere(n) 此函数生成三个(n+1)(n+1)阶的矩阵,再利用函数surf(x,y,z)可生成单位球面x,y,z=sphere 此形式使用了默认值n=20sphere(n) 只绘制球面图,不返回值运行下面程序:sphere(30);axis square;我们得到球体图形:图4.2.3.1 球面图 若只输入sphere画图,则是默认了n=20的情况 (2) surf函数也是Matlab中常用的三维绘图函数其调用格式如下:surf(x,y,z,c)输入参数的设置与mesh相同,不同的是mesh函数绘制的是一网格图,而surf绘制的是着色的三维表面Matlab语言对表面进行着色的方法是,在得到相应网格后,对每一网格依据该网格所代表的节点的色值(由变量c控制),来定义这一网格的颜色若不输入c,则默认为c=z我们看下面的例子:%绘制地球表面的气温分布示意图a,b,c=sphere(40);t=abs(c); %求绝对值surf(a,b,c,t);axis equalcolormap(hot)我们可以得到图形如下:图4.2.3.2 等温线示意图 (1)坐标轴的控制函数axis,调用格式如下:axis(xmin,xmax,ymin,ymax,zmin,zmax)用此命令可以控制坐标轴的范围与axis相关的几条常用命令还有:axis auto 自动模式,使得图形的坐标范围满足图中一切图元素axis equal 严格控制各坐标的分度使其相等axis square 使绘图区为正方形axis on 恢复对坐标轴的一切设置axis off 取消对坐标轴的一切设置axis manual 以当前的坐标限制图形的绘制 (2)grid on 在图形中绘制坐标网格grid off 取消坐标网格 (3)xlabel, ylabel, zlabel分别为x轴, y轴, z轴添加标注title为图形添加标题以上函数的调用格式大同小异,我们以xlabel为例进行介绍:xlabel(标注文本,属性1,属性值1,属性2,属性值2,)这里的属性是标注文本的属性,包括字体大小、字体名、字体粗细等 例如:x, y=meshgrid(-4:.2:4);R=sqrt(x.2+y.2);z=-cos(R);mesh(x,y,z)x

温馨提示

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

评论

0/150

提交评论