matlab绘图教程资料课件.ppt
第五章 Matlab绘图,吴良杰,Harbin Engineering University,Matlab绘图,高层绘图函数 不需过多考虑绘图细节,只需给出一些基本参数。简单明了、方便高效 低层绘图操作 将图形的每个元素(坐标轴、曲线、曲面或文字)分配一个句柄,通过该句柄对该图形元素进行操作。控制和表现图形的能力更强,二维图形,绘图示例:绘制从0到2pi之间的正弦曲线。步骤:1.产生x轴、y轴数据:x=0:pi/20:2*pi y=sin(x)2.绘制出正弦曲线:plot(x,y,r-)r-表示以红色实线绘制出正弦曲线。3.给图形加上栅格线:grid on,二维图形,二维图形 将平面坐标上的数据点连接起来的平面图形 坐标系 直角坐标 对数坐标 极坐标 数据点 向量 矩阵,二维图形,基本函数:plot 功能:自动打开一个图形窗口Figure 如果已经存在一个图形窗口,plot命令则清除当前图形,绘制新图形 根据图形坐标大小自动缩扩坐标轴,将数据标尺及单位标注自动加到两个坐标轴上;可自定义坐标轴 可单窗口单曲线绘图;可单窗口多曲线绘图;可单窗口多曲线分图绘图;可多窗口绘图 可任意设定曲线颜色、线型和标记符号 可给图形加坐标网线和图形加注功能,二维图形,plot的调用格式 plot(x)缺省自变量绘图格式 plot(x,y)基本格式,以y(x)的函数关系作出直角坐标图,如果y为nm的矩阵,则以x为自变量,作出m条曲线 plot(x1,y1,x2,y2,xn,yn)多条曲线绘图格式 plot(x1,y1,选项1,x2,y2,选项2,xn,yn,选项n)含选项的绘图格式,二维图形,plot(x)x为向量 以x相应元素下标为横坐标,x元素值为纵坐标绘图 x=0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20;plot(x)x为矩阵 按列绘制每列元素值相对其下标的曲线 x=1,2,3;4,5,6;plot(x),二维图形,plot(x,y)x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。x=0:pi/100:2*pi;y=2*exp(-0.5*x).*sin(2*pi*x);plot(x,y)当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。t=linspace(0,2*pi,100);x=t;t;y=sin(t);cos(t);plot(x,y),二维图形,plot(x1,y1,x2,y2,xn,yn)当输入参数都为向量时,每一向量对(xi,yi)绘制出一条曲线。每一组向量对的长度可以不同。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)当输入参数有矩阵形式时,配对的x,y按对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。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,x1,y1-1),二维图形,plot(x1,y1,选项1,x2,y2,选项2,xn,yn,选项n)选项:确定颜色、线型和数据点标记符号。例如,plot(x1,y1,b-.,x2,y2,y:d)b-.:蓝色点划线,y:d:黄色虚线并用菱形符标记数据点。选项省略时,线型一律用实线,颜色将根据曲线的先后顺序依次采用下表中给出的前7种颜色。t=0:0.2:2*pi;x=sin(t);y=cos(t);plot(t,x,+r,t,y,-b),二维图形,双纵坐标函数plotyy 将函数值具有不同量纲、不同数量级的两个函数绘制在同一坐标中。调用格式为:plotyy(x1,y1,x2,y2)横坐标的标度相同,左纵坐标用于x1-y1数据对,右纵坐标用于x2-y2数据对。例 用不同标度在同一坐标内绘制曲线y1=e-0.5xsin(2x)及曲线y2=1.5e-0.1xsin(x)。x1=0:pi/100:2*pi;x2=0:pi/100:3*pi;y1=exp(-0.5*x1).*sin(2*pi*x1);y2=1.5*exp(-0.1*x2).*sin(x2);plotyy(x1,y1,x2,y2);,右纵坐标,左纵坐标,绘制图形的辅助操作,图形标注:图形名称、坐标轴说明、图形某一部分的含义 坐标控制:设定坐标系范围 自动根据要绘制曲线数据的范围选择合适的坐标刻度,使得曲线能够尽可能清晰地显示出来。图形保持:在已存在的图形上再继续添加新的图形。图形窗口的分割:在一个图形窗口中绘制多个子图形,绘制图形的辅助操作图形标注,图形标注函数的调用格式:title(图形名称)xlabel(x轴说明)ylabel(y轴说明)text(x,y,图形说明)在x,y坐标处添加文字说明 legend(图例1,图例2,),绘制图形的辅助操作图形标注,例 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(正弦、余弦);,绘制图形的辅助操作坐标控制,无坐标控制 x=0:.01:pi/2;figure(1)plot(x,tan(x),-ro)坐标控制 调用格式为:axis(xmin xmax ymin ymax zmin zmax)figure(2)plot(x,tan(x),-ro)axis(0,pi/2,0,5),绘制图形的辅助操作坐标控制,axis函数常用的用法:axis equal 纵、横坐标轴采用等长刻度 axis square 产生正方形坐标系(缺省为矩形)axis auto 使用缺省设置 axis off 取消坐标轴 axis on 显示坐标轴 其他坐标控制函数 grid on/off:控制是否画网格线。box on/off:控制是否加边框线。figure(3);plot(x,tan(x),-ro);axis(0,pi/2,0,5);grid on;box on;,绘制图形的辅助操作图形保持,命令格式 hold on/off:控制是保持原有图形还是刷新原有图形。例 a=20 25 30;b=0.3 0.5 4;plot(a,b,-or)hold on c=0.4 3 7;plot(a,c,-*b)hold off,绘制图形的辅助操作图形窗口的分割,函数格式:subplot(m,n,p)将一个绘图窗口分割成 m*n 个子区域,并按行从左至右,由上至下 依次编号。p 表示第 p 个绘图子区域。,绘制图形的辅助操作图形窗口的分割,例:在一个图形窗口中以子图形式同时绘制正弦、余弦、正切、余切曲线。x=linspace(0,2*pi,60);y=sin(x);z=cos(x);t=sin(x)./(cos(x)+eps);ct=cos(x)./(sin(x)+eps);subplot(2,2,1);plot(x,y);title(sin(x);axis(0,2*pi,-1,1);subplot(2,2,2);plot(x,z);title(cos(x);axis(0,2*pi,-1,1);subplot(2,2,3);plot(x,t);title(tangent(x);axis(0,2*pi,-40,40);subplot(2,2,4);plot(x,ct);title(cotangent(x);axis(0,2*pi,-40,40),特殊的二维图形,特殊的二维图形,例 分别以条形图、填充图、阶梯图和针状图形式绘制曲线y=2e-0.5x。x=0:0.35:7;y=2*exp(-0.5*x);subplot(2,2,1);bar(x,y,g);title(bar(x,y,g);axis(0,7,0,2);subplot(2,2,2);fill(x,y,r);title(fill(x,y,r);axis(0,7,0,2);subplot(2,2,3);stairs(x,y,b);title(stairs(x,y,b);axis(0,7,0,2);subplot(2,2,4);stem(x,y,k);title(stem(x,y,k);axis(0,7,0,2);,特殊的二维图形,例:某次考试优秀、良好、中等、及格、不及格的人数分别为:7,17,23,19,5,试用饼图作成绩统计分析。pie(7,17,23,19,5);title(饼图);legend(优秀,良好,中等,及格,不及格);,对数坐标绘图,有时变量变化范围非常大,如x轴从0.01到100,这时如果仍采用plot绘图,就会失去局部可视性。因此应用对数坐标系来绘图。在对数坐标中可清晰地看到局部。x轴对数 semilogx:x轴是log10,y是线性的,等价于plot(log10(x),y)y轴对数 semilogy:y轴是log10,x是线性的,等价于plot(x,log10(y)双对数loglog;用log10-log10标度绘图,对数坐标绘图,例:绘制y=10 x2的线性坐标图和三种对数坐标图。x=0:0.1:10;y=10*x.*x;subplot(2,2,1);plot(x,y);title(plot(x,y);grid on;subplot(2,2,2);semilogx(x,y);title(semilogx(x,y);grid on;subplot(2,2,3);semilogy(x,y);title(semilogy(x,y);grid on;subplot(2,2,4);loglog(x,y);title(loglog(x,y);grid on;,极坐标绘图,函数格式:polar(theta,rho,选项)theta角度(弧度表示)rho极半径 选项:与plot函数相似 例:建立=sin(2)cos(2)的极坐标图 theta=linspace(0,2*pi);rho=sin(2*theta).*cos(2*theta);polar(theta,rho,g)title(Polar plot of sin(2*theta).*cos(2*theta),函数绘图,常用的绘制函数f(x)的曲线方法 对采样点向量x 计算出f(x)的值向量y 再用plot(x,y)函数绘制。plot 函数一般采用等间隔采样,对绘制高频率变化的函数不够精确 例如函数f(x)=cos(tan(x),x(0,1)范围是有无限个震荡周期,函数变化率大 函数绘图 fplot 函数可自适应的对函数进行采样,能更好反映函数的变化规律,函数绘图,函数格式 fplot(fname,lims,tol,选项)fname:要绘制的函数,可以是M文件名,也可以是以x为变量的可计算字符串。lims=XMIN XMAX YMIN YMAX:限定x,y 轴上的绘图空间。对二元向量时限定x轴。tol:相对允许误差,其默认值为2e-3 选项定义:与plot函数相同,函数绘图,比较:plot与fplot subplot(2,1,1);x=0:0.1:2*pi;y=sin(x);plot(x,y)subplot(2,1,2);fplot(sin(x),0 2*pi,-+)用fplot函数绘制f(x)=cos(tan(x)的曲线。y=cos(tan(pi*x);fplot(y,-0.4,1.4,1e-4),三维绘图三维曲线图,函数格式:plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,)x,y,z是长度相同的向量:一条曲线 x,y,z是维数相同的矩阵:多条曲线例:三维螺旋线x=t,y=sin(t),z=cos(t),0 t 20,t=0:0.1:10*pi;x=2*t;y=sin(t);z=cos(t);plot3(x,y,z);,三维绘图三维曲线图,画图机制 先画点,后连线 1)给出空间离散点的坐标(x,y,z)2)将这些点按顺序连接即可,t=0:0.5:20;x=t;y=sin(t);z=cos(t);plot3(x,y,z,.),t=0:0.5:20;x=t;y=sin(t);z=cos(t);plot3(x,y,z,.-),三维绘图三维曲线图,t=0:0.1:20;x=t;y=sin(t);z=cos(t);plot3(x,y,z,.-),t=0:0.1:20;x=t;y=sin(t);z=cos(t);plot3(x,y,z),三维绘图三维曲面图,三维曲面z=f(x,y)绘制的一般步骤:步骤一:确定向量x,y 步骤二:使用meshgrid生成网格矩阵 步骤三:计算函数z=f(x,y)在各网格点上的值 步骤四:使用mesh等命令生成三维网格曲面图、使用surf等命令生成三维表面着色曲面图。,x=-8:0.5:8;y=-8:0.5:8;X,Y=meshgrid(x,y);r=sqrt(X.2+Y.2)+eps;Z=sin(r)./r;mesh(X,Y,Z),先画点(x,y,z),后连线,构成曲面网格图,三维绘图三维曲面图,网格矩阵生成函数:meshgrid X,Y=meshgrid(x,y)x,y 为给定的向量,X,Y 是网格划分后得到的网格矩阵 x=1:0.5:3;y=10:1:14;X,Y=meshgrid(x,y);,三维绘图三维网络曲面,mesh(X,Y,Z,C)X,Y:网格坐标矩阵,Z:网格点上的高度矩阵。矩阵 C:确定不同高度下的颜色范围,省略时 C=Z,即颜色的设定正比于图形的高度mesh(Z)x,y 省略时,Z矩阵的列下标当做x轴坐标,Z矩阵的行下标当做y轴坐标,meshc 调用方式与 mesh 相同,在 mesh 基础上增加等高线,meshz 调用方式与 mesh 相同,在 mesh 基础上增加底座,三维绘图三维网络曲面,例:绘制等高线 meshc X,Y=meshgrid(-8:0.5:8);r=sqrt(X.2+Y.2)+eps;Z=sin(r)./r;meshc(X,Y,Z)例:绘制底座曲面 meshz X,Y=meshgrid(-8:0.5:8);r=sqrt(X.2+Y.2)+eps;Z=sin(r)./r;meshz(X,Y,Z),三维绘图三维网络曲面,三维绘图三维网络曲面,a=8 时的曲面图形 x=-8:0.5:8;y=-8:0.5:8;X,Y=meshgrid(x,y);r=sqrt(X.2+Y.2)+eps;Z=sin(r)./r;mesh(X,Y,Z),x 与 y 可以取不同的步长,三维绘图三维表面着色曲面,函数:surf,surfc,surfl surf(X,Y,Z,C)绘制由矩阵 X,Y,Z 所确定的着色的三维表面图,参数含义同 mesh。surfc 调用方式与 surf 相同,在 surf 基础上增加等高线 surfl 调用方式与 surf 相同,在 surf 基础上增加光照效果,三维绘图三维表面着色曲面,例:表面着色的“墨西哥”帽子X,Y=meshgrid(-8:0.5:8);r=sqrt(X.2+Y.2)+eps;Z=sin(r)./r;surf(X,Y,Z)例:绘制等高线 surfc X,Y=meshgrid(-8:0.5:8);r=sqrt(X.2+Y.2)+eps;Z=sin(r)./r;surfc(X,Y,Z),三维绘图三维表面着色曲面,例:绘制具有光照效果的曲面surfl X,Y=meshgrid(-8:0.5:8);r=sqrt(X.2+Y.2)+eps;Z=sin(r)./r;surfl(X,Y,Z),三维绘图标准三维曲面,sphere(n)专用于绘制单位球面,n决定了球的圆滑程度 sphere 只能画单位球面!cylinder(R,n)专用于绘制三维柱面 R 为半径;n为柱面圆周等分数 peaks(n)生成的绘图数据矩阵作为参数可绘制 多峰函数曲面图,n表示矩阵的阶数,三维绘图标准三维曲面,sphere绘图 sphere 系统默认为 n=20 sphere(50)peaks绘图 x,y,z=peaks meshz(x,y,z)系统默认为 n=49 x,y,z=peaks(30)meshz(x,y,z),三维绘图,二维图形中的条形图、饼图等也可以以三维图形的形式出现;用格式分别为(1)bar3(x,y):在x 指定的位置绘制y 中元素的条形图;x 可省略,则y 的每一个元素对应一个条形。(2)stem3(x,y,z):在x、y 指定的位置绘制数据z 的针状图,x,y,z 维数必须相同;x 和y 若可省略,则自动生成。(3)pie3(x):x 为向量,用x 中的数据绘制一个三维饼图。(4)fill3(x,y,z,c):x,y,z 作为多边形的顶点,c 指定填充颜色。,视角控制,默认的三维视角为仰角30,方位角-37.5。默认的二维视角为仰角90,方位角0,视角控制,函数view(1)view(az,el)与 view(az,el):设置视角的方位角和仰角分别为az 与el。(2)view(x,y,z):将视点设为坐标(x,y,z)。(3)view(2):设置为默认的二维视角,az=0,el=90。(4)view(3):设置为默认的三维视角,az=-37.5,el=30。(5)view(T):以矩阵T 设置视角,T 为由函数viewmtx 生成的44 矩阵。(6)az,el=view:返回当前视角的方位角和仰角。(7)T=view:由当前视角生成的44 矩阵T。,视角控制,x=-4:4;y=-4:4;X,Y=meshgrid(x,y);Z=X.2+Y.2;subplot(2,2,1)surf(X,Y,Z);%画三维曲面ylabel(y),xlabel(x),zlabel(z);title(a)默认视角)subplot(2,2,2)surf(X,Y,Z);%画三维曲面ylabel(y),xlabel(x),zlabel(z);title(b)仰角55,方位角-37.5)view(-37.5,55)%将视角设为仰角55,方位角-37.5,视角控制,subplot(2,2,3)surf(X,Y,Z);%画三维曲面ylabel(y),xlabel(x),zlabel(z);title(c)视点为(2,1,1)view(2,1,1)%将视点设为(2,1,1)指向原点subplot(2,2,4)surf(X,Y,Z);%画三维曲面ylabel(y),xlabel(x),zlabel(z);title(d)仰角90,方位角10)view(10,90)%将视角设为仰角90,方位角10,实验,实验,2、已知y1=x2,y2=cos(2x),y3=y1*y2,完成以下操作:1)在同一坐标系下用不同的颜色和线型绘制三条曲线2)又子图形式绘制三条曲线。3)分别用条形图、阶梯图、针状图和填充图绘制三条曲线。绘制极坐标曲线=asin(b+n).,实验,3、按要求绘制三维图形。(1)绘制魔方阵的条形图;(2)用针型图绘制函数z=cos(x);(3)已知x=45,76,89,222,97,绘制饼图;(4)用随机顶点绘制一个黑色的六边形。4、设,求定义域x=-2,2,y=-2,2内的z 值(网格取0.1)。请把z 的值用网面图形象地表示出来,实验,