资料2函数可视化_第1页
资料2函数可视化_第2页
资料2函数可视化_第3页
资料2函数可视化_第4页
资料2函数可视化_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、 MatLab图形绘制功能一、 二维平面图形基本绘图函数命 令含 义plot建立向量或矩阵各队队向量的图形loglogx、y轴都取对数标度建立图形semilogxx轴用于对数标度,y轴线性标度绘制图形semilogyy轴用于对数标度,x轴线性标度绘制图形title给图形加标题xlabel给x轴加标记ylabel给y轴加标记text在图形指定的位置上加文本字符串gtext在鼠标的位置上加文本字符串grid打开网格线plot绘图函数的叁数 字元 颜色字元 图线型态y 黄色. 点k 黑色o 圆w 白色x xb 蓝色+ +g 绿色* *r 红色- 实线c 亮青色: 点线m 锰紫色-. 点虚线- 虚线

2、hold on 命令用于在已画好的图形上添加新的图形plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x及y座标。下例可画出一条正弦曲线: x=0:0.001:10; % 0到10的1000个点的x座标y=sin(x); % 对应的y座标plot(x,y); % 绘图Y=sin(10*x);plot(x,y,'r:',x,Y,'b') % 同时画两个函数· 若要改变颜色,在座标对後面加上相关字串即可: x=0:0.01:10; plot(x,sin(x),'r') 若要同时改变颜色及图线型态(Line st

3、yle),也是在坐标对後面加上相关字串即可:plot(x,sin(x),'r*')用axis(xmin,xmax,ymin,ymax)函数来调整图轴的范围axis(0,6,-1.5,1)MATLAB也可对图形加上各种注解与处理:xlabel('x轴'); % x轴注解 ylabel('y轴'); % y轴注解 title('余弦函数'); % 图形标题 legend('y = cos(x)'); % 图形注解 gtext('y = cos(x)'); % 图形注解 ,用鼠标定位注解位置grid on

4、; % 显示格线 fplot的指令可以用来自动的画一个已定义的函数分布图,而无须产生绘图所须要的一组数据做为变数。其语法为fplot('fun',xmin xmax ymin ymax),其中 fun为一已定义的函数名称,例如 sin, cos等等;而 xmin, xmax, ymin, ymax 则是设定绘图横轴及纵轴的下限及上限。以下的例子是将一函数 f(x)=sin(x)/x 在-20<x<20,-0.4<y<1.2之间画出:>> fplot('sin(x)./x',-20 20 -0.4 1.2) 【例】画椭圆a =

5、0:pi/50:2*pi'%角度 X = cos(a)*3;%参数方程Y = sin(a)*2;plot(X,Y);xlabel('x'), ylabel('y');title('椭圆') 图形窗口的分割一般用命令subplot:subplot(2,2,1);subplot(2,3,4);plot3命令将绘制二维图形的函数plot的特性扩展到三维空间图形。函数格式除了包括第三维的信息(比如Z方向)之外,与二维函数plot相同。plot3一般语法调用格式是plot3(x,y,z,S),这里x,y和z是向量或矩阵,S是可选的字符串,用来指定颜

6、色、标记符号和/或线形(s可以省略)。三维螺旋线例子: t=0:pi/50:10*pi; plot3(sin(t),cos(t),t) grid %添加网格plot3可画出空间中的曲线: t=linspace(0,20*pi, 501); plot3(t.*sin(t), t.*cos(t), t); %注意用点乘 .*亦可同时画出两条空间中的曲线:t=linspace(0, 10*pi, 501); plot3(t.*sin(t), t.*cos(t), t, t.*sin(t), t.*cos(t), -t); 正弦曲线图 x=linspace(0,3*pi); % 0到 3pi 间100

7、个数据点 z1=sin(x); z2=sin(2*x); z3=sin(3*x); y1=zeros(100); % 含有100个数据的 0数组 y3=zeros(100); y2=y3/2; plot3(x,y1,z1,x,y2,z2,x,y3,z3);后面供同学们参考:MATLAB还有其他各种二维绘图函数,以适合不同的应用,详见下表。 小整理:其他各种二维绘图函数 bar 长条图errorbar 图形加上误差范围 fplot 较精确的函数图形 polar 极座标图hist 累计图rose 极座标累计图stairs 阶梯图stem 针状图fill 实心图feather 羽毛图compass

8、罗盘图quiver 向量场图当资料点数量不多时,长条图是很适合的表示方式: close all; % 关闭所有的图形视窗 x=1:10; y=rand(size(x); bar(x,y); 如果已知资料的误差量,就可用errorbar来表示。下例以单位标准差来做资料的误差量: x = linspace(0,2*pi,30); y = sin(x); e = std(y)*ones(size(x); errorbar(x,y,e) 对於变化剧烈的函数,可用fplot来进行较精确的绘图,会对剧烈变化处进行较密集的取样,如下例: fplot('sin(1/x)', 0.02 0.2)

9、; % 0.02 0.2是绘图范围 若要产生极座标图形,可用polar: theta=linspace(0, 2*pi); r=cos(4*theta); polar(theta, r); 对於大量的资料,我们可用hist来显示资料的分情况和统计特性。下面几个命令可用来验证randn产生的高斯乱数分: x=randn(5000, 1); % 产生5000个 m=0,s=1 的高斯乱数 hist(x,20); % 20代表长条的个数 rose和hist很接近,只不过是将资料大小视为角度,资料个数视为距离,并用极座标绘制表示: x=randn(1000, 1); rose(x); stairs可画

10、出阶梯图: x=linspace(0,10,50); y=sin(x).*exp(-x/3); stairs(x,y); stems可产生针状图,常被用来绘制数位讯号: x=linspace(0,10,50); y=sin(x).*exp(-x/3); stem(x,y); stairs将资料点视为多边行顶点,并将此多边行涂上颜色: x=linspace(0,10,50); y=sin(x).*exp(-x/3); fill(x,y,'b'); % 'b'为蓝色 feather将每一个资料点视复数,并以箭号画出: theta=linspace(0, 2*pi,

11、20); z = cos(theta)+i*sin(theta); feather(z); compass和feather很接近,只是每个箭号的起点都在圆点: theta=linspace(0, 2*pi, 20); z = cos(theta)+i*sin(theta); compass(z); 二、 三维立体图形三维绘图函数contour二维等值线图,即从上向下看contour3等值线图contour3等值线图fill3填充的多边形mesh网格图meshc具有基本等值线图的网格图meshz有零平面的网格图pcolor二维伪彩色绘图,即从上向下看surf图plot3直线图quiver二维带方

12、向箭头的速度图surf曲面图surfc具有基本等值线图的曲面图surfl带亮度的曲面图waterfall无交叉线的网格图 三维绘图工具axis修正坐标轴属性clf清除图形窗口clabel放置等值线标签close关闭图形窗口figure创建或选择图形窗口getframe捕捉动画桢grid放置网格griddata对画图用的数据进行内插hidden隐蔽网格图线条hold保留当前图形meshgrid产生三维绘图数据movie放动画moviein创建桢矩阵,存储动画shading在曲面图和伪彩色图中用分块、平滑和插值加阴影subplot在图形窗口内画子图text在指定的位置放文本title放置标题vie

13、w改变图形的视角xlabel放置x轴标记ylabel放置y轴标记zlabel放置z轴标记函数viewview(az,el)设置视图的方位角az和仰角elview(az,el)view(x,y,z)在笛卡儿坐标系中沿向量x,y,z正视原点设置视图,例如view(0 0 1)=view(0,90)view(2)设置缺省的二维视图,az=0,el=90view(3)设置缺省的三维视图,az=-37.5,el=30az,el=view返回当前的方位角az和仰角elview(T)用一个4×4的转置矩阵T来设置视图T=view返回当前的4×4转置矩阵 plot3命令将绘制二维图形的函数

14、plot的特性扩展到三维空间图形。函数格式除了包括第三维的信息(比如Z方向)之外,与二维函数plot相同。plot3一般语法调用格式是plot3(x,y,z,S),这里x,y和z是向量或矩阵,S是可选的字符串,用来指定颜色、标记符号和/或线形(s可以省略)。三维螺旋线例子: t=0:pi/50:10*pi; plot3(sin(t),cos(t),t) grid %添加网格plot3可画出空间中的曲线: t=linspace(0,20*pi, 501); plot3(t.*sin(t), t.*cos(t), t); %注意用点乘 .*亦可同时画出两条空间中的曲线:t=linspace(0,

15、10*pi, 501); plot3(t.*sin(t), t.*cos(t), t, t.*sin(t), t.*cos(t), -t); 正弦曲线图 x=linspace(0,3*pi); % 0到 3pi 间100个数据点 z1=sin(x); z2=sin(2*x); z3=sin(3*x); y1=zeros(100); % 含有100个数据的 0数组 y3=zeros(100); y2=y3/2; plot3(x,y1,z1,x,y2,z2,x,y3,z3);利用在xy平面的矩形网格点上的z轴坐标值,MATLAB定义了一个网格曲面。MATLAB通过将邻接的点用直线连接起来形成网状曲

16、面,其结果好象在数据点有结点的鱼网。mesh可画出立体网状图.画出由函数形成的立体网状图: x=linspace(-2, 2, 25); % 在x轴上取25点 y=linspace(-2, 2, 25); % 在y轴上取25点 xx,yy=meshgrid(x, y); % xx和yy都是21x21的矩阵 zz=xx.*exp(-xx.2-yy.2); % 计算函数值,zz也是21x21的矩阵 mesh(xx, yy, zz); % 画出立体网状图 曲面图,除了各线条之间的空档(称作补片)用颜色填充以外,和网格图看起来是一样的。这种图一般使用函数surf来绘制。surf和mesh的用法类似:

17、x=linspace(-2, 2, 25); % 在x轴上取25点 y=linspace(-2, 2, 25); % 在y轴上取25点 xx,yy=meshgrid(x, y); % xx和yy都是21x21的矩阵 zz=xx.*exp(-xx.2-yy.2); % 计算函数值,zz也是21x21的矩阵 surf(xx, yy, zz); % 画出立体曲面图 MATLAB提供了一个peaks函数,可产生一个凹凸有致的曲面,包含了三个局部极大点及三个局部极小点,其方程式为: 要画出此函数的最快方法即是直接键入peaks: peaks z = 3*(1-x).2.*exp(-(x.2) - (y+

18、1).2) . - 10*(x/5 - x.3 - y.5).*exp(-x.2-y.2) . - 1/3*exp(-(x+1).2 - y.2) 我们亦可对peaks函数取点,再以各种不同方法进行绘图。meshz可将曲面加上围裙: x,y,z=peaks; meshz(x,y,z); waterfall可在x方向或y方向产生水流效果: x,y,z=peaks; waterfall(x,y,z); 下列命令产生在y方向的水流效果: x,y,z=peaks; waterfall(x',y',z'); meshc同时画出网状图与等高线: x,y,z=peaks; meshc

19、(x,y,z); surfc同时画出曲面图与等高线: x,y,z=peaks; surfc(x,y,z); contour3画出曲面在三度空间中的等高线: contour3(peaks, 20); contour画出曲面等高线在XY平面的投影: contour(peaks, 20); 剔透玲珑球X0,Y0,Z0=sphere(30); %产生单位球面的三维坐标X=2*X0;Y=2*Y0;Z=2*Z0; %产生半径为2的球面的三维坐标surf(X0,Y0,Z0); %画单位球面shading interp %采用插补明暗处理hold on; mesh(X,Y,Z);hold off %画外球面hidden off %产生透视效果axis off %不显示坐标轴动态图形动画效果 彗星状轨

温馨提示

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

最新文档

评论

0/150

提交评论