ATLAB应用基础第三章1MATLAB的图形功能_第1页
ATLAB应用基础第三章1MATLAB的图形功能_第2页
ATLAB应用基础第三章1MATLAB的图形功能_第3页
ATLAB应用基础第三章1MATLAB的图形功能_第4页
ATLAB应用基础第三章1MATLAB的图形功能_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

1、.第3章 MATLAB的图形功能MATLAB可以给计算数据以二维、三维的图形表现。通过对图形线型、色彩、光线、视角等的指定和处理,可把计算数据的特征更好地表现出来。在MATLAB中有两个层次的绘图命令:高层与底层绘图命令。高层命令简单实用,底层命令有更强、更灵活的控制和表现图形的能力。本章将先后介绍上述两类绘图命令。但重点介绍高层绘图命令。3.1 二维图形3.1.1 基本二维绘图命令 plot1、调用格式格式1:plot(x,y)功能:(1)若x,y为同规模的向量,则绘制以x为横坐标、y为纵坐标的一条曲线。例如:x=0:0.02:6; y=1./(x-0.3).2+0.01)+1./(x-0.

2、9).2+0.04)-6;plot(x,y) 运行结果如下图所示:(2)若x为向量、y是二维数组,则绘制以x为横坐标、y的每一列为纵坐标的多条曲线。例如:x=0:0.02:6;y=sin(x);cos(x)'plot(x,y) 运行结果如下图所示:(3)若x,y均为二维数组(必须相同规模),则绘制以它们的对应列为横、纵坐标的多条曲线。例如:x=0:0.02:6;0:0.02:6;y=sqrt(x(1,:);exp(-x(2,:);plot(x.',y.') 运行结果如下图所示:注意:在绘图时,以上x或y中的虚部将被忽略。例如:x = 0:0.2:10*pi;y = sq

3、rt(sin(x);plot(x,y) 运行结果如下图所示:格式2:plot(y)功能:(1)若y为向量,其元素为实数,则绘制以其下标为横坐标、以y为纵坐标的图形,即相当于plot(1:length(y),y)。例如:x=0:0.02:6;y=1./(x0.3).2+0.01)+1./(x0.9).2+0.04)-6;plot(y)运行结果如下图所示:(1)若y为复数向量,则绘制以其实部为横坐标,以其虚部系数为纵坐标的图形,即相当于plot(real(y),imag(y)。例如:x = 0:0.2:2*pi;y = sqrt(sin(x)plot(y) 运行结果如下图所示: y = Colum

4、ns 1 through 4 0 0.4457 0.6240 0.7514 Columns 5 through 8 0.8470 0.9173 0.9654 0.9927 Columns 9 through 12 0.9998 0.9868 0.9536 0.8992 Columns 13 through 16 0.8219 0.7180 0.5788 0.3757 Columns 17 through 20 0+0.2416i 0+0.5055i 0+0.6652i 0+0.7822i Columns 21 through 24 0+0.8699i 0+0.9336i 0+0.9755i 0

5、+0.9968i Columns 25 through 28 0+0.9981i 0+0.9792i 0+0.9399i 0+0.8791i Columns 29 through 32 0+0.7945i 0+0.6816i 0+0.5286i 0+0.2883i (3)若是按y绘制曲线,曲线条线等于y的列数。例如:x = 0:0.2:10*pi;y = sin(x);cos(x)'plot(y) 运行结果如下图所示: 格式3:plot (x1,y1,x2,y2,)功能:分别以(x1,y1)为二元组,(x2,y2)为二元组,按照plot(x,y)命令规则,绘出各组图形。如:x = 0:

6、0.02:2*pi;y = sin(x); z = cos(x);plot(x,y,x,z) 运行结果如下图所示:格式4:(指定曲线线型、颜色和标记的)plot (x,s)plot (x,y,s)plot (x1,y1,s1,x2,y2,s2)其中s为一字符串,用于指定绘图时的曲线线型、曲线颜色和线的标记。曲线线型: (实线, 缺省设置): (虚线). (点划线) (双划线)例如:x = 0:0.02:2*pi;y = sin(x); z = cos(x);plot(x,y,':',x,z,'-.')运行结果如下图所示 曲线颜色yyellow(黄色)mmagen

7、ta(品红)ccyan(青)天兰rred(红)ggreen(绿)bblue(兰)wwhite(白)kblack(黑)例如:x = 0:0.02:2*pi;y = sin(x); z = cos(x);plot(x,y,'c',x,z,'r')运行结果如下图所示:曲线标记·point(点)Xx-mark(叉号)Ocircle(园字母O)+plus(加号)*star(星号)s square(方块)ddiamond(点)vtriangle(down)(下三角)triangle(up)(上三角)<triangle(left)(左三角)>triang

8、le(right)(右三角)ppentagram(空心五角星)hhexagram(空心六角星)x = 0:0.2:2*pi;y1 = sin(x); y2 = cos(x); y3 = sqrt(x);hold onplot(x,y1,'.')plot(x,y2,'s')plot(x,y3,'') 运行结果如下图所示: 实际上,可以同时指定曲线的颜色、标记和线型。例如:x = 0:0.2:2*pi;y1 = sin(x); y2 = cos(x);y3 = sqrt(x);hold onplot(x,y1,'bp-')plot(x

9、,y2,'rh-')plot(x,y3,'g') 运行结果如下图所示: 3.1.2 坐标网格、标注和图例说明1、坐标网格grid on 在当前图中加网格线grind off 去掉当前图中的网络线2、标注title(字符串) 功能: 当前坐标系顶部加标题xlabel (字符串)功能: 当前坐标系x轴旁加标题(下方)ylabel (字符串) 功能: 当前坐标系y轴旁加标题(左侧)text (x,y,字符串)功能: 当前坐标系指定位置处加文本gtext (字符串) 功能: 在鼠标单击处加文本3、图例说明legend(字符串1,字符串2,)功能:在当前图形内建立一图例说

10、明框,框内显示各字符串。并且图形的曲线与字符串依次对应,可用鼠标拖动图例框改变其位置。legend off 功能: 删掉图例说明框例如:x=linspace(0,2*pi);y=sin(x);z=cos(x);plot(x,y,'b:',x,z,'m+')xlabel('变量X')ylabel('函数Y、Z')title('正弦与余弦曲线')grid ontext(3.3,0.1,'sin(x)')%gtext('cos x') 本命令要用鼠标,在Notebook中不能用legend

11、('sin(x)','cos(x)') 运行结果如下图所示:3.1.3 坐标轴的形式和刻度在缺省状态下,坐标轴自动显示、自动刻度、且为笛卡儿直角坐标系。MATLAB中有以下对坐标轴操作的命令:axis(Xmin,Xmax,Ymin,Ymax)功能: 设定坐标范围v = axis 功能: 获取当前坐标范围,存入v中(v为行向量 Xmin,Xmax,Ymin,Ymax)axis('auto') 功能: 恢复缺省坐标设置axis('xy') 功能: 使用笛卡儿坐标轴(即缺省)jiaxis('ij') 功能: 使用矩阵坐标

12、轴( )axis(square) 功能: 显示矩形坐标框axis(equal) 功能: 使各坐标轴刻度增量相同axis(normal) 功能: 使以上两个命令失效axis(off) 功能: 隐去坐标轴axis(on) 功能: 显示坐标轴s1,s2,s3 = axis(state)返回当前坐标轴的属性:s1:anto 自动刻度 manual 人工刻度s2:on 显示坐标轴 off 隐去坐标轴s3:xy 笛卡儿坐标轴 ij 矩阵坐标轴例如:x=linspace(0,2*pi);y=sin(x);z=cos(x);plot(x,y,'b:',x,z,'k-')axis

13、('off')grid offxlabel('变量X')ylabel('函数Y、Z')title('正弦与余弦曲线')text(2.5,0.7,'sin(x)')text(4.8,0.7,'cos(x)')legend('sin(x)','cos(x)')运行结果如下图所示:3.1.4图形窗口操作1、创建图形窗口figure功能: 创建一个新的图形窗口。在第一个绘图命令运行后,将自动创建名为Figure No.1的图形窗口,后续的绘图命令均是在该窗口中作用的。figu

14、re命令,将顺序地创建Figure No.2、Figure No.3、等图形窗口,但是,如若Figure No.1不存在,则创建该窗口。2、创建或选择第n个图形窗口figure(n)功能:选择第n个图形窗口为当前窗口,若该窗口不存在,则创建它。3、子坐标系统在同一图形窗口中,可以创建n个子坐标系统,并指定其中之一为当前坐标系统。subplot(m,n,p)将当前窗口划分为m×n个子坐标系统,并选择其中第p个坐系统为当前坐标系统。各子坐标系统按行排序,编号分别为1,2,m×n。特别地subplot(1,1,1)将删除所有子坐标系统而生成一个占满窗口的坐标系统。例如:x=lin

15、space(0,2*pi,30);y=sin(x);z=cos(x);a=2*sin(x).*cos(x);b=sin(x)./(cos(x)+eps);subplot(2,2,1)plot(x,y)axis(0,2*pi,-1,1)title('sin(x)')subplot(2,2,2)plot(x,z)axis(0,2*pi,-1,1)title('cos(x)')subplot(2,2,3)plot(x,a)axis(0,2*pi,-1,1)title('2sin(x)cos(x)')subplot(2,2,4)plot(x,b)axis

16、(0,2*pi,-20,20)title('sin(x)/cos(x)') 运行结果如下图所示:4、图形重叠绘制hold on功能:保留当前图形及其坐标轴,允许后续图形附加到原图上。hold off功能:其后的绘图命令将抹掉原图而重新绘制(缺省设置)hold功能:on与off的状态切换5、图形缩放zoom on功能:使当前图形窗口的图形可放缩。在此状态下,单击右键放大,单击右键缩小,直至恢复原大小。或者拖动出一个矩形框而放大。注意:本命令与legend 命令均可拖动鼠标,应互斥使用。zoom off功能: 关闭放缩状态zoom功能: 切换on与off状态3.1.5其它二维图形命

17、令1、坐标轴刻度改变后的绘图命令(用法与plot同)loglog(x,y) 功能:x,y轴均采用对数刻度绘制图形semilogx(x,y) 功能:仅x轴采用对数刻度,y轴仍采用线性刻度semilogy(x,y)功能:仅y轴采用对数刻度,x轴仍采用线性刻度2、特殊图形绘制命令bar(x,y)功能: 绘制条状图例如:x=-2.9:0.2:2.9;y=exp(-x.*x);bar(x,y);title('Bar chart of a Bell curve'); 运行结果如下图所示: stairs(x,y) 功能: 绘制阶梯状图例如:x=-2.9:0.2:2.9;y=exp(-x.*x

18、);stairs(x,y);title('Stairs chart of a Bell curve'); 运行结果如下图所示: stem(x,y) 功能: 绘制火柴杆状图例如:x=0:0.2:4*pi;y=exp(-0.3*x).*sin(x);stem(x,y);title('Stem plot'); 运行结果如下图所示:hist(x,y) 功能:绘制在y的每个分量附近x中的元素出现的频数直方图例如:x=-2.9:0.2:2.9;y=randn(5000,1);hist(y,x); %统计y所出现的频数图title('Histogram of rand

19、om data'); 运行结果如下图所示: errorbar(x,y,e) 功能: 函数y = f(x)在x各分量处的误差条状图例如:x=0:0.2:2*pi;y=sin(x);e=rand(size(x)/5; %随机误差值errorbar(x,y,e);title('Errorbar plot'); 运行结果如下图所示:3、极坐标下的曲线绘制polar(,)功能: 在的范围内的曲线图例如:t=0:0.1:8*pi;r=2*sin(t/2);polar(t,r);title('双心脏线'); 运行结果如下图所示:4、玫瑰图rose(v)功能: 在极坐标

20、中将0,2等分20份,以极轴表示v在不同分量处频率的扇形玫瑰图rose(v,n)功能: 将0,2等分n份,绘制v中元素在不同分量处频率的玫瑰图v=randn(100,1)*pi;rose(v);title('玫瑰图'); 运行结果如下图所示: 5、二维函数专用命令fplot(fname,lims,marker,tol)功能: 绘制fname所包含二维函数的曲线其中:fname 函数字符串向量lims 自变量取值区值,形为Xmin, Xmax或Xmin,Xmax,Ymin,Ymaxmarker 绘制曲线所用标记,缺省为 。可接受的标记还有: 、×、0、。tol 相对误差

21、上限,缺省为2*10 3. x的最大数为。marker和tol可以省略。x,y = fplot(fname,lims,)功能:将返回绘图时所用的向量x和相应y。如:fplot(sin(x),cos(x),0,4pi)fplot('tan(sin(x)-sin(tan(x)' , 0,4pi)fplot(sin(x),0,4pi,0)这种自适应绘图一般绘图质量较好,但速度稍慢。此外,ezplot(fname,lims)也有类似功能。6、拓扑关系绘图命令gplot(A,xy,lc)其中:A为一个图G的邻接矩阵,即若a(i,j)非0,则从结点i到结点j有一条边,但A未必为方阵。xy为

22、一个n×2的矩阵,表示各结点的位置。即xy(i,:) = x(i),y(i)lc为线型和颜色,缺省为r,其指明方式与plot命令相同。例如:a=0,1,0,1,0; 1,0,0,0,1; 0,0,0,0,1; 1,1,0,0,0; 0,1,1,0,0;xy=1,5;4,7.4;6,3.5;5,2;2,3;gplot(a,xy)text(1.1,5,'1')text(4,7.4,'2')text(5.9,3.6,'3')text(5.1,2.1,'4')text(2,2.8,'5') 运行结果如下图所示:

23、7、填充多边形命令fill(x,y,c)功能:填充由点(x1,y1),(x2,y2),(xn,yn)构成的多边形,其颜色由c指明。例如:x=1:5;y=0,-1,1,-1,0;fill(x,y,'r') 运行结果如下图所示: 8、区域填充命令area(x,y,'属性名1',属性值1,)功能:对x、y界定的区域填充,并对各属性设置对应属性值。例如:t=linspace(0,2*pi,14);x=sin(2*t);y=cos(2*t);area(x,y,'facecolor','r') 运行结果如下图所示:9、对比绘图命令plotyy

24、(x1,y1,x2,y2)功能:在同一坐标系中使用不同坐标绘制两个图形例如:x=-2*pi:pi/10:2*pi;y=sin(x);z=2*abs(cos(x);subplot(2,1,1)plot(x,y,x,z)title('按相同坐标刻度绘制两个图形')subplot(2,1,2)plotyy(x,y,x,z,'plot','semilogy')title('按不同坐标刻度绘制两个图形') 运行结果如下图所示: 10、带状图绘制命令ribbon(x,y,c)功能: 绘制三维带状图例如:x=-2*pi:pi/30:2*pi;y

25、=sin(x);ribbon(x,y,'b') 运行结果如下图所示: 在MATLAB中,还有一些其它二维绘图命令,如pie(饼图)、barh(二维水平条状图)等。即使这里介绍的命令,也有其它不同的形式,请大家自学。3.2.2曲面网线图和表面图1、曲面的彩色网线图如果已知n维的向量x和m维的向量y及相应的二元函数z = f(x,y)的离散值zij=f(xj,yi)(其中:I=1,2,m,j=1, 2,n),则绘制二元函数空间曲面网线图的基本步骤如下:1)生成网格结点矩阵X和Y:X,Y = meshgrid(x,y)其中:X为m×n的矩阵,其每一行都是x向量的复制,而Y也

26、为 m×n矩阵,其每列均为y向量的复制。2)由X,Y计算函数值矩阵Z3)使用命令mesh绘制曲面网线彩图mesh(X,Y,Z)绘制由X,Y,Z决定的网线图,图中以(Xij,Yij,Zij)作为结点,结点间互连,网线颜色随Z值大小而变化。mesh(x,y,Z)绘制由向量x,y和矩阵Z决定的网线图,网线结点为(xj,yi,Zij)。mesh(Z)绘制由(1:n,1:m,Z)决定的网线图。网线结点为(i,j,Zij)例如:x=-7.5:0.5:7.5;y=x;X,Y=meshgrid(x,y);r=sqrt(X.2+Y.2)+eps;Z=sin(r)./r;mesh(X,Y,Z)title

27、('阔边帽网线图')运行结果如下:2、曲面彩色图形如果已知x和y,并已生成了网络点矩阵X,Y,以及函数值矩阵Z(方法与曲面网线图一样),则要绘制曲面彩色图形可使用如下命令:1)surf(X,Y,Z,C)其中:c指定表面色彩,缺省为c=Z,即按Z值(高度)填充各图块。2)surf(x,y,Z)3)surf(Z)例如:x=-7.5:0.5:7.5;y=x;X,Y=meshgrid(x,y);r=sqrt(X.2+Y.2)+eps;Z=sin(r)./r;surf(X,Y,Z)title('阔边帽网线图')运行结果如下:3、平面等值线图如果已知x,y并已生成了网格点矩

28、阵X和Y,以及函数值矩阵Z(方法与曲面网线图一样),则要绘制以Z为高程值,以x,y为模纵坐标的平面等值线图,可使用如下命令:1)contour(X,Y,Z)2)contour(X,Y,Z,n)其中:n为等值线条数,缺省值为10。3)contour(X,Y,Z,v)以向量v中的值绘制相应等值线,等值线条线为length(v)。4)contour(Z)以Z下标为横纵坐标值绘等值线。5)contour(Z,n)6)contour(Z,v)7)C,H = contour()将Z值送入C中,并把每条等值线的图形句柄送入H,以便控制其线型、颜色、线宽等。例如:X,Y,Z=peaks;contour(X,Y

29、,Z)title('PEAKS函数的等值线图(1)')pausecontour(X,Y,Z,10)title('PEAKS函数的等值线图(2)')pausecontour(X,Y,Z,3 5 7 10)title('PEAKS函数的等值线图(3)')pausecontour(Z)title('PEAKS函数的等值线图(4)')pausecontour(Z,10)title('PEAKS函数的等值线图(5)')运行结果如下:4、三维等值线的绘制当网线矩阵X,Y已知,并已计算出相应函数值矩阵Z后,可使用下述命令绘制三维

30、等值线图:1)contour3(Z)2)contour3(Z,n)其中:n缺省为103)contour3(X,Y,Z)4)contour3(X,Y,Z,n)5)C,H = contour3()6)contour3(X,Y,Z,v)各项含义同contour命令。例如:z=peaks;contour3(z)pausecontour3(z,20)运行结果如下:5、二元函数的伪彩色图(等值线)即用颜色表示平面图表中二元函数值的大小(高度)、方法如下:1)首先指定颜色集pcolor(X,Y,Z)表示在由X,Y构造的平面上,用Z的元素确定相应小格子的颜色。pcolor(Z)表示在由Z的下标值构造的平面上,

31、用Z的元素确定相应小格子的颜色。2)使用命Shading令控制着色模式Shading flat |interp| faceted缺省为faceted,即着色网格并附加黑色网线。若为flat,无网线,且各网格颜色单一。若为interp,无网线,且各网格颜色通过相应4个顶点的颜色值进行双线性内插得出。3)使用hold on使以上设定一直保持例如:%内部函数例x,y,z=peaks(50);pcolor(x,y,z)shading interphold oncontour(x,y,z,10,'k')pauseshading flatcontour(x,y,z,10,'k

32、9;)pauseshading facetedcontour(x,y,z,10,'k')运行结果如下:例如:%外部数据文件例load d:matlabcaiz.txtzcontour(z)运行结果如下:6、其它相关命令1)与mesh命令相关的命令meshc()其中:参数()与mesh命令相同功能:绘制带等值线图的曲面网线图meshz()功能:绘制带引用平面的曲面网线图waterfall()功能:绘制瀑布式曲线图(不带平行y的曲线)例如:mesh(peaks);title('peaks函数的曲面网线图')pausemeshc(peaks);title('p

33、eaks函数带等值线的曲面网线图')pausemeshz(peaks);title('peaks函数带引用曲面的曲面网线图')pausewaterfall(peaks);title('peaks函数的瀑布式曲面网线图')运行结果如下:2)与surf命令相关的命令surfc() 其中:参数()与surf相同功能:绘制带等值线图的曲面网线图surfl()功能:绘制带光照效果的曲面彩色图。例如:surf(peaks);title('peaks函数的曲面网线图')pausesurfc(peaks);title('peaks函数带等值线的曲

34、面网线图')pausesurfl(peaks);title('peaks函数带光照效果的曲面网线图')运行结果如下:3)与contour命令相关的命令c = contourc()功能:计算各条等值线的xy坐标数据clabel(C)功能:对C矩阵所表示的等值线加标注clabel(C,v)功能:给向量v所指定的等值线加标注clabel(C,'manual')功能:在图中单击鼠标处加标注,直到按下回车键为止例如:z=peaks;contour(z)c=contourc(z);clabel(c)pausecontour(z,0,3,5,7)c=contourc(

35、z,0,3,5,7);clabel(c,0,3,5,7)pausecontour(z,1,4,7)clabel(c,'manual')运行结果如下:4)矢量场图(速度图)矢量场图主要用于描绘函数z = f(x,y)在点(x,y)处的梯度大小和方向。绘制矢量场图的方法如下:已知x,y向量,计算网格坐标矩阵X,Y = meshgrid(x,y)计算二元函数值矩阵ZZ = f(X,Y)计算每个Z值各矢量的大小和方向px,py = gradient(Z,dx,dy)其中: dx,dy是x,y方向上的计算步长,若步长为1,可省略。绘制矢量图quiver(x,y,px,py,s,'Lsc')或 quiver(X,Y,px,py,s,'lsc')其中:s缺省时为1,表示所画箭头大小,'lsc'为线型、颜色字符串,缺省为'y'。矢量场图常与等值线图连用,可收到更好的效果。5)消隐和透视MATLAB在同一坐标系中绘制多个三维图形时,缺省为消隐,即重叠部分只有最外侧可见。hidden on 功能:消隐hidden off 功能:透视6)切片图这是实现三元函数v = f(x,y,z)图形

温馨提示

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

评论

0/150

提交评论