第4章Matlab的图形功能(1)掌握图形窗口的创建与控制,以及图形窗口的基本操作;(2)熟练掌握二维和三维绘图基本的命令、着色、线型控制;(3)初步掌握用特殊的图形来表现特殊数据的性质,如面积图、直方图、饼图等。(4)了解在极坐标、柱坐标和球坐标系下绘制图形。(5)掌握坐标轴的控制和图形标注命令及其用法。(6)了解句柄图形的概念和图形对象的结构层次、掌握图形对象属性的获取及利用图形对象属性编辑器设置对象属性的方法。(7)掌握用GUI设计用户界面菜单对象和用户界面控制对象的方法。一、图形窗口创建图形窗口的命令为figure,有两种调用格式:figure/figure(n)也可以由菜单创建:File-New-Figure图形窗口的操作及控制第4章Matlab的图形功能figure(1)x=0:0.1:1;y=sin(x);plot(x,y)第4章Matlab的图形功能二、二维平面图形与坐标系1.几个基本的绘图命令a.线性坐标曲线plot(连续曲线)b.stem(离散曲线)函数命令plot是MATLAB二维曲线绘图中最简单、最重要、使用最广泛的一个线性绘图函数。它可以生成线段、曲线和参数方程曲线的函数图形。命令格式:plot(y):单参数式(y为纵坐标向量,横坐标为向量[1234…])plot(x,y):参数式(x为横坐标向量,y为纵坐标向量)plot(Y):m×n矩阵式(矩阵的每列为纵坐标,横坐标为向量[1:m])plot(X,Y):混合式plot(Z):复向量式plot(x1,y1,x2,y2,…):综合调用方式第4章Matlab的图形功能用命令plot(y)绘曲线,其中y=[5349023]。y=[5349023];plot(y)用命令plot(x,y)绘制函数y=cos(x)在两个周期内的图形。x=0:0.01:2*pi;y=cos(x);plot(x,y)在同一图形窗口中用命令plot(x,y)绘出正弦余弦函数的图形。x=0:0.01:2*pi;y=[sin(x);cos(x)];plot(x,y)用命令plot(Y)绘制矩阵Y=[5438910;344582;81213211825;988967]的图形。Y=[5438910;344582;81213211825;988967];plot(Y)第4章Matlab的图形功能在混合式的命令格式plot(X,Y)中,对X和Y而言,可分下列几种情况:◆如果X和Y都是向量,则长度必须相等;◆如果X是向量,而Y是一个矩阵,X的长度与矩阵Y的行数或列数相等,则它的作用是将向量X与矩阵Y的每列或每行的向量相对应作折(曲)线,当Y是方阵时,则将向量X与矩阵Y的列向量对应作图;◆如果X是矩阵,Y是向量,Y的长度等于矩阵X的行数或列数,则将X的每列或每行的向量与Y相对应作图。当X是方阵时,则将X的各列与Y对应作图;◆如果X和Y都是矩阵,且维数相同,则按列与列的对应方式来作图。第4章Matlab的图形功能用命令plot(X,Y)绘制图形。x=1:length(peaks);plot(x,peaks)注意:peaksz=3*(1-x).^2.*exp(-(x.^2)-(y+1).^2)...-10*(x/5-x.^3-y.^5).*exp(-x.^2-y.^2)...-1/3*exp(-(x+1).^2-y.^2)第4章Matlab的图形功能用plot(Z)绘制图形。x=0:pi/20:2*pi;Z=sin(x)+cos(x)*iplot(Z)等价于plot(real(Z),imag(Z))用plot(x1,y1,x2,y2,…)在同一窗口中绘制多条曲线,且坐标和长度都不同。t1=0:0.1:3*pi;t2=0:0.1:6;plot(t1,sin(t1),t2,sqrt(t2))第4章Matlab的图形功能b.二维函数曲线专用命令fplot用plot绘图在确定自变量的取值间隔时,一般采用平均间隔,有时会因某处间距太大,而不能反映出函数的变化情况。fplot是绘制函数y=f(x)图形的专用命令,它的数据点是自适应产生的,对那些导数变化较大的函数,用fplot函数绘出的曲线比等分取点所画出的曲线更加接近真实。fplot函数命令的调用格式为:[X,Y]=fplot(fun,lims,tol,n,‘linespec’,p1,p2…)fun:函数名字符串;lims:定义x的取值区间,lims=[xmin,xmax];tol:相对误差(默认值为2e-3);n:绘图的最少点数(n+1);‘linespec’:线性设置;p1,p2,…:函数传递参数;X,Y:数组数据点坐标。第4章Matlab的图形功能fplot和plot命令的比较。(1)创建函数M文件funfplot。functiony=funfplot(x)y=sin(1./tan(pi.*x));(2)将用fplot命令求得的坐标点按照对应大小创建一个等间距坐标点赋值给矩阵X,Y。[X,Y]=fplot('funfplot',[-0.1,0.1],2e-4);%只把数据点坐标输入X、Y,而不显示图形。%要使用tol、n或是’linespec’的默认参数,可以给函数传递一个[]作为参数。x=-0.1:1/1000*pi:0.1;y=funfplot(x);(3)用plot和fplot命令作图,比较二者的不同:plot(x,y)figure(2)%打开一个新的图形窗口plot(X,Y)%该命令等价于fplot(’funfplot’,[-0.1,0.1],2e-4);第4章Matlab的图形功能c.对数坐标曲线命令绘制二维对数坐标曲线的命令semilogx、semilogy和loglog,其用法和函数plot相同。函数semilogx横坐标为对数坐标;函数semilogy纵坐标为对数坐标;函数loglog横、纵坐标均为对数坐标。绘制正弦函数的对数坐标曲线。t=0.1:0.1:3*pi;y=sin(t);figure(1)semilogx(t,y)gridon%为图形窗口添加网格figure(2)semilogy(t,y)figure(3)loglog(t,y)第4章Matlab的图形功能d.双y轴图形绘制左右均有y轴的图形plotyy(x1,y1,x2,y2)在窗口中同时绘制两条曲线:(x1,y1)和(x2,y2),曲线(x1,y1)用左侧的y轴,曲线(x2,y2)用右侧的y轴。plotyy(x1,y1,x2,y2,‘fun’)’fun’是字符串,用来指定绘图的函数名,如plot、semilogx、semilogy等。plotyy(z1,y1,x2,y2,‘fun1’,‘fun2’)用’fun1’和’fun2’指定不同的绘图函数分别绘制。用plotyy函数绘制双y轴图形。t1=0:0.1:3*pi;t2=0:0.1:6;y1=sin(t1);y2=sqrt(t2);plotyy(t1,y1,t2,y2,'semilogx')gridon第4章Matlab的图形功能在同一图形窗口中用不同的绘图函数绘制同一函数曲线的双y轴图形。x=0:0.1:6;y=sqrt(x);plotyy(x,y,x,y,’semilogy’,’plot’)plotyy函数不能加入设置曲线线型、颜色及标出数据点的参数。xy第4章Matlab的图形功能2.线型和颜色plot函数可以设置曲线的线段类型、定点标记和线段颜色。常用的线段、颜色与定点标记参数调用格式:plot(x,y,s),s为类型说明参数,是字符串。s字符串可以是三种类型的符号之一,也可以是线型与颜色和定点标记与颜色的组合;如果没有s参数,plot将使用缺省设置(实线,前七种颜色顺序着色)绘制曲线;在当前坐标系中绘图时,每调入一次绘图函数,MATLAB将擦掉坐标系中已有的图形对象。可以用holdon命令在一个坐标系中增加新的图形对象。注意MATLAB会根据新图形的大小,重新改变坐标系的比例。用不同的线型和标注来绘制两条曲线。t1=0:0.1:2*pi;t2=0:0.1:6;y1=sin(t1);y2=sqrt(t2);plot(t1,y1,':hb',t2,y2,'--g')第4章Matlab的图形功能第4章Matlab的图形功能3.图形窗口的分割有时需要在一个图形窗口中显示几幅图,以便对几个函数进行直观、便捷的比较。由于每个绘图命令在绘制数据图像时都会将已有图形覆盖掉,而用hold命令不能实现同时显示几个不同坐标尺寸下的图形,用figure命令再创窗口又很难同时比较由不同的数据绘得的图像。实现在同一个窗口中同时显示多个图像的命令subplot。使用格式为:subplot(m,n,i)其含义为:把图形窗口分割为m行n列子窗口,然后选定第i个窗口为当前窗口。subplot命令不仅用于二维图形,对三维图形一样适用。其本质是将figure窗口分为几个区域,再在每个区域内分别绘图。第4章Matlab的图形功能用subplot函数把两种不同的图形综合在一个图形窗口中。subplot(2,2,1)t=0.1:0.1:2*pi;y=sin(t);semilogx(t,y)gridonsubplot(2,2,2)t=0:0.1:4*pi;y=sin(t);plot(t,y)subplot(2,2,3)x=1:0.01:5;y=exp(x);plotyy(x,y,x,y,’semilogx’,’plot’)subplot(2,2,4)x=1:0.1:10;y=sqrt(x);plot(x,y,’:rd’)第4章Matlab的图形功能4.坐标系的调整实现坐标系的调整的命令是axis函数。调用格式为:axis([xmin,xmax,ymin,ymax,zmin,zmax])坐标的最小值(xmin,ymin,zmin)必须小于相应的最大值(xmax,ymax,zmax),否则会出错。自动坐标系与用axis函数调整后的坐标系的比较。subplot(2,1,1)t=0:0.1:4*pi;y=sin(t);plot(t,y)subplot(2,1,2)t=0:0.1:4*pi;y=sin(t);plot(t,y)axis([0,max(t),min(y),max(y)])第4章Matlab的图形功能三、三维绘图1.三维曲线绘图命令三维函数plot3主要用来表现单参数的三维曲线,与二维绘图函数plot相比,只多了第三维数据。其调用格式为:plot3(X1,Y1,Z1,s1,X2,Y2,Z2,s2,…)或plot3(X,Y,Z,s)参数的含义如下:Xn、Yn、Zn:第一到三维数据,是尺寸相等的向量/矩阵;s、s1、s2:是字符串,用来设置线型、颜色、数据点标记。X、Y、Z是向量时,绘制以向量X、Y、Z的元素为x、y、z坐标的三维曲线。X、Y、Z是矩阵时,以X、Y、Z对应列元素为x、y、z坐标分别绘制曲线。第4章Matlab的图形功能x、y、z是向量时,plot3命令的使用t=0:0.1:8*pi;plot3(sin(t),cos(t),t)title(’绘制螺旋线’)%用命令title对图形主题进行标注xlabel(’sin(t)’,’FontWeight’,’bold’,’FontAngle’,’italic’)ylabel(’cos(t)’,’FontWeight’,’bold’,’FontAngle’,’italic’)zlabel(’t’,’FontWeight’,’bold’,’FontAngle’,’italic’)%命令zlabel用来指定z轴的数据名称gridonx、y、z都是矩阵时,plot3命令的使用[X,Y]=meshgrid(-pi:0.1:pi);Z=sin(X)+cos(Y);plot3(X,Y,Z)第4章Matlab的图形功能2.三维曲面绘图命令为了绘制定义在平面区域D=[x0,xm]×[y0,yn]上的三维曲面z=f(x,y),首先将[x