1、3.1二维绘图二维绘图3.2特殊图形和坐标的绘制特殊图形和坐标的绘制3.3MATLAB的图形窗口的图形窗口3.4基本三维绘图命令基本三维绘图命令1.曲线数据准备曲线数据准备2.指定图形窗口和子图位置指定图形窗口和子图位置3.绘制图形绘制图形4.设置坐标轴和图形注释设置坐标轴和图形注释5.仅对三维图形使用的着色和视点等设置仅对三维图形使用的着色和视点等设置6.图形的精细修饰图形的精细修饰7.按指定格式保存或导出图形按指定格式保存或导出图形MATLAB 7.3中最基本的绘图函数是绘制曲线中最基本的绘图函数是绘制曲线函数函数plot。plot(y)%绘制以绘制以y为纵坐标的二维曲线为纵坐标的二维曲线
2、plot(x,y)%绘制以绘制以x为横坐标为横坐标y为纵坐标的二维曲线为纵坐标的二维曲线plot(x1,y1,x2,y2)%在同一窗口绘制多条二维曲在同一窗口绘制多条二维曲线线例例3-3 绘制矩阵绘制矩阵y为为23的曲线图的曲线图 y=1 2 3;4 5 6;plot(y)y是是23的矩阵,每的矩阵,每列画一条曲线共列画一条曲线共3条条,第一条线纵坐标,第一条线纵坐标画的是画的是1 4两点。两点。例例3-4 绘制方波信号,如图绘制方波信号,如图3-4所示。所示。x=0 1 1 2 2 3 3 4 4;y=1 1 0 0 1 1 0 1 1;plot(x,y)例例3-6 x是矩阵,分别绘制是矩阵
3、,分别绘制x与与y1和和x与与y2的曲的曲线,已知线,已知y1是向量且长度与是向量且长度与x的行数相等,的行数相等,y2是是矩阵且与矩阵且与x尺寸相同,曲线分别如图尺寸相同,曲线分别如图3-6a和和3-6b所所示。示。x=1:4;2:5;3:6x=1 2 3 4 2 3 4 5 3 4 5 6 y1=1 2 3%y1长度与长度与x的行数相等的行数相等y1=1 2 3 plot(x,y1)1.同一个窗口多个子图同一个窗口多个子图使用使用subplot函数建立子图,函数建立子图,subplot函数的命令函数的命令格式如下:格式如下:subplot(m,n,i)%将窗口分成将窗口分成(mn)幅子图中
4、,第幅子图中,第i幅为当前图幅为当前图说明:说明:subplot中的逗号(中的逗号(,)可以省略;子图的)可以省略;子图的编排序号原则是:左上方为第编排序号原则是:左上方为第1幅,先从左向右后幅,先从左向右后从上向下依次排列,子图彼此之间独立。从上向下依次排列,子图彼此之间独立。例例3-8 在同一个窗口中建立四个子图,在子图中在同一个窗口中建立四个子图,在子图中分别绘制分别绘制sin(x)、cos(x)、sin(2x)和和cos(2x)曲线,如曲线,如图图3-8所示。所示。x=0:0.1:10;subplot(2,2,1)%第一行左图第一行左图 plot(x,sin(x)subplot(2,2
5、,2)%第一行右图第一行右图 plot(x,cos(x)subplot(2,2,3)%第二行左图第二行左图 plot(x,sin(2*x)subplot(2,2,4)%第二行右图第二行右图 plot(x,cos(2*x)2.双纵坐标图双纵坐标图双纵坐标图是指在同一个坐标系中使用左右两个双纵坐标图是指在同一个坐标系中使用左右两个不同刻度的坐标轴。不同刻度的坐标轴。plotyy(x1,y1,x2,y2)%以左、右不同的纵轴绘制两条曲线以左、右不同的纵轴绘制两条曲线3.同一窗口多次叠绘同一窗口多次叠绘使用使用hold命令可以保留原图形,使多个命令可以保留原图形,使多个plot函数函数在一个坐标系中不
6、断叠绘。在一个坐标系中不断叠绘。hold on 、hold off、hold 、hold all。4.指定图形窗口指定图形窗口figure(n)%产生新图形窗口产生新图形窗口1.曲线的线型、颜色和数据点形曲线的线型、颜色和数据点形在在plot函数中还可以通过字符串参数来设函数中还可以通过字符串参数来设置曲线的线型、颜色和数据点形等,命令置曲线的线型、颜色和数据点形等,命令格式如下:格式如下:plot(x,y,s)说明:说明:s为字符串,设置曲线的线型、颜为字符串,设置曲线的线型、颜色和数据点形等的,线型、颜色与数据点色和数据点形等的,线型、颜色与数据点形参数。形参数。例例3-11 在图形中设置
7、曲线的不同线型和在图形中设置曲线的不同线型和颜色并绘制图形,如图颜色并绘制图形,如图3-11所示。所示。x=0:0.2:10;y=exp(-x);plot(x,y,ro-.)hold on z=sin(x);plot(x,z,m+:)2.设置坐标轴设置坐标轴3.分隔线和坐标框分隔线和坐标框4.图形注释图形注释图形注释是对打开的正在编辑的图形进行图形注释是对打开的正在编辑的图形进行文字标注,文字标注包括设置标题(文字标注,文字标注包括设置标题(title)、设置坐标轴标签(、设置坐标轴标签(label)、设置图例()、设置图例(legend)和添加标注元素()和添加标注元素(annotation
8、)。)。5使用鼠标添加注释文字使用鼠标添加注释文字gtext(s)%用鼠标把字符串放在图形上用鼠标把字符串放在图形上gtext(s1,s2,s3,.)%一次将多个的字符一次将多个的字符串分行放置在图形上串分行放置在图形上gtext(s1;s2;s3;.)%一次放置一个字符一次放置一个字符串分多次放置在图形上串分多次放置在图形上6.使用鼠标获取图形数据使用鼠标获取图形数据x,y=ginput(n)%用鼠标从图形上获取用鼠标从图形上获取n个点的坐标个点的坐标(x,y)说明:参数说明:参数n应为正整数,是通过鼠标从应为正整数,是通过鼠标从图上获得数据点的个数;图上获得数据点的个数;x、y用来存放所用
9、来存放所取点的坐标是列向量,每次获取的坐标点取点的坐标是列向量,每次获取的坐标点为列向量的一个元素。为列向量的一个元素。在在MATLAB 7.3的的Workspace窗口中,如果选窗口中,如果选择了择了Workspace窗口中的某窗口中的某个内存变量,单击工具栏个内存变量,单击工具栏中的绘制列数据曲线按钮中的绘制列数据曲线按钮(Plot),出现下拉的菜单),出现下拉的菜单可以绘制各种不同的特殊可以绘制各种不同的特殊图形。图形。1.柱状图柱状图柱状图常用于对统计的数据进行显示,便于观察柱状图常用于对统计的数据进行显示,便于观察在一定时间段中数据的变化趋势,比较不同组数据在一定时间段中数据的变化趋
10、势,比较不同组数据集以及单个数据在所有数据中的分布情况,特别适集以及单个数据在所有数据中的分布情况,特别适用于少量且离散的数据。用于少量且离散的数据。bar(x,y,width,参数参数)%画柱状图画柱状图2.面积图面积图面积图与柱状图相似,只不过是将一组数据的面积图与柱状图相似,只不过是将一组数据的相邻点连接成曲线,然后在曲线与横轴之间填充相邻点连接成曲线,然后在曲线与横轴之间填充颜色,适合于连续数据的统计显示。颜色,适合于连续数据的统计显示。area(x,y)%画面积图画面积图3.饼形图饼形图饼形图适用于显示向量或矩阵中各元素占饼形图适用于显示向量或矩阵中各元素占总和的百分比。总和的百分比
11、。pie(x,explode,label)%画二维饼形图画二维饼形图nx是向量,用于绘制饼形图;是向量,用于绘制饼形图;nexplode是与是与x同长度的向量,用来决定是否从饼同长度的向量,用来决定是否从饼图中分离对应的一部分块,非零元素表示该部分需图中分离对应的一部分块,非零元素表示该部分需要分离;要分离;nlabel是用来标注饼形图的字符串数组。是用来标注饼形图的字符串数组。4.直方图直方图直方图又称为频数直方图,适于显示数据集的分布情直方图又称为频数直方图,适于显示数据集的分布情况并具有统计的功能。况并具有统计的功能。hist(y,n)%统计每段的元素个数并画出直方图统计每段的元素个数并
12、画出直方图N=hist(y,x)%统计出每段元素个数图统计出每段元素个数图3-20 绘制直方图绘制直方图说明:说明:n分段的个数,分段的个数,n省略时则默认为分成省略时则默认为分成10段;段;x是向量,用于指定所分每个数据段的中间值;是向量,用于指定所分每个数据段的中间值;y可以是向量或矩阵,如果是矩阵则按列分段;可以是向量或矩阵,如果是矩阵则按列分段;N是每段元素个数,是每段元素个数,N可省略,省略时绘制图形。可省略,省略时绘制图形。例例3-18 绘制直方图统计并显示数据,如绘制直方图统计并显示数据,如图图3-20所示。所示。x=randn(100,1)%产生产生100个正态分布的随机数个正
13、态分布的随机数 subplot(2,1,1)hist(x,20)%分分20段段 subplot(2,1,2)hist(x,-3:1:3)%确定每段中间值确定每段中间值 sum(x1.5)%计算计算1.52.5间的元素个数间的元素个数5.离散数据图离散数据图(1)stem函数函数将数据用一个垂直于横轴的火柴棒表示将数据用一个垂直于横轴的火柴棒表示,火柴头的小圆表示数据点。,火柴头的小圆表示数据点。stem(x,y,参数参数)%绘制火柴杆图绘制火柴杆图(2)stairs函数函数stairs函数用于绘制阶梯图,命令格式如函数用于绘制阶梯图,命令格式如下:图下:图3-21 火柴杆图和阶梯图火柴杆图和阶
14、梯图stairs(x,y,线型线型)%绘制阶梯图绘制阶梯图6.误差条图误差条图误差条图是用来绘制误差的条形图,显示误差条图是用来绘制误差的条形图,显示沿着曲线的误差,常用于数理统计。沿着曲线的误差,常用于数理统计。errorbar(X,Y,E,线型线型)%绘制在绘制在(X,Y)处长为处长为E的误差条的误差条errorbar(X,Y,L,U,线型线型)%绘制在绘制在(X,Y)处向下长为处向下长为L向上长为向上长为U的误差条的误差条7.向量图向量图(1)compass函数函数compass函数绘制的图中每个数据点都是以原点为起点的带函数绘制的图中每个数据点都是以原点为起点的带箭头的线段,称为罗盘图
15、箭头的线段,称为罗盘图compass(u,v,线型线型)%绘制横坐标为绘制横坐标为u纵坐标为纵坐标为v的罗盘图的罗盘图(2)feather函数函数feather函数是在直角坐标系中绘图,起点为函数是在直角坐标系中绘图,起点为X轴上间隔单位轴上间隔单位长度的刻度点,称为羽毛图,长度的刻度点,称为羽毛图,feather(u,v,线型线型)%绘制横坐标为绘制横坐标为u纵坐标为纵坐标为v的羽毛图的羽毛图(3)quiver函数函数quiver函数绘制向量场,也是在直角坐标系中绘图,常用于函数绘制向量场,也是在直角坐标系中绘图,常用于绘制梯度场,绘制梯度场,quiver(x,y,u,v)%绘制以绘制以(x
16、,y)为起点,横纵坐标为为起点,横纵坐标为(u,v)的向的向量场量场1.极坐标图极坐标图polar(theta,rho,参数参数)%根据相角根据相角theta和离原点的距离和离原点的距离rho绘制极坐标图绘制极坐标图例例3-21 使用使用polar函数来绘制极坐标图。函数来绘制极坐标图。theta=0:0.1:2*pi;r1=sin(theta);r2=cos(theta);%在极坐标中绘制两条曲线在极坐标中绘制两条曲线 polar(theta,theta,r1,r2,r)2.对数坐标图对数坐标图对数坐标图是指坐标轴的刻度不是线性刻度而对数坐标图是指坐标轴的刻度不是线性刻度而是对数刻度,是对数
17、刻度,semilogx和和 semilogy函数分别绘制函数分别绘制对对X轴和轴和Y轴的半对数坐标图,轴的半对数坐标图,loglog是双对数坐是双对数坐标图。标图。semilogx(x1,y1,线型线型,x2,y2,线型线型,)%绘制绘制x为对数的多条曲线为对数的多条曲线semilogy(x1,y1,线型线型,x2,y2,线型线型,)%绘制绘制y为对数的多条曲线为对数的多条曲线loglog(x1,y1,线型线型,x2,y2,线型线型,)%绘制绘制x、y都为对数的多条曲线都为对数的多条曲线例例3-22 计算对数幅频特性,横坐标为计算对数幅频特性,横坐标为w按对数坐标,绘制半对数坐标如图按对数坐标
18、,绘制半对数坐标如图3-25a,绘制双对数坐标图如图绘制双对数坐标图如图3-25b所示。所示。w=logspace(-1,2,10);Lw=-20*log10(sqrt(0.05*w).2+1);semilogx(w,Lw)loglog(w,Lw)1.工具栏工具栏MATLAB 7.3图形窗口有三个工具栏,图形窗口有三个工具栏,如图如图3-27所示,包括图形窗口工具栏、照所示,包括图形窗口工具栏、照相工具栏和绘图编辑工具栏。相工具栏和绘图编辑工具栏。2.菜单菜单图形窗口的菜单包括图形窗口的菜单包括“File”、“Edit”、“View”、“Insert”、“Tools”、“Desktop”、“W
19、indow”和和“Help”。3.面板面板MATLAB 7.3的交互式图形工具主要包的交互式图形工具主要包括图形面板、绘图浏览器和属性编辑器三括图形面板、绘图浏览器和属性编辑器三个面板。个面板。1.图形的打印图形的打印在在MATLAB中对图形打印可以通过打印预览窗口中对图形打印可以通过打印预览窗口进行设置,可以设置打印到纸或文件,并可以进行进行设置,可以设置打印到纸或文件,并可以进行页面设置、打印预览。页面设置、打印预览。2.图形的输出图形的输出(1)导出图形文件)导出图形文件 在在MATLAB 7.3中导出图形文件使用菜单中导出图形文件使用菜单“File”“Export Setup”。图形文
20、件的保存格式。图形文件的保存格式有有.fig、.bmp、.emf、.jpg、.pdf、.tif、.pcx和和.png等等常用图形文件格式。常用图形文件格式。plot3(x,y,z,线型线型)%绘制三维曲线绘制三维曲线说明:说明:x,y,z必须是相同尺寸的数组,必须是相同尺寸的数组,当是向量时则绘制一条三维曲线,当是矩当是向量时则绘制一条三维曲线,当是矩阵时绘制多条曲线,三维曲线的条数等于阵时绘制多条曲线,三维曲线的条数等于矩阵的列数。矩阵的列数。三维曲面图包括三维网线图和三维表面图,三三维曲面图包括三维网线图和三维表面图,三维曲面图与三维曲线图的不同是三维曲线图是以维曲面图与三维曲线图的不同是
21、三维曲线图是以线来定义而三维曲面图是以面来定义,因此面上线来定义而三维曲面图是以面来定义,因此面上的点都要连接起来。的点都要连接起来。1.产生矩形网格产生矩形网格X,Ymeshgrid(x,y)%产生产生XY矩形网格矩形网格说明:说明:x和和y分别是有分别是有n个和个和m个元素的一维数个元素的一维数组,组,X和和Y都是都是nm的矩阵,每个(的矩阵,每个(X,Y)对应)对应一个网格点;如果一个网格点;如果y省略,则省略,则X和和Y都是都是nn的矩的矩阵。阵。2.三维网线图三维网线图三维网线图就是将平面上的网格点(三维网线图就是将平面上的网格点(X,Y)对应)对应z值值的顶点画出,并将各顶点用线连
22、接起来。的顶点画出,并将各顶点用线连接起来。mesh(X,Y,Z,C)%绘制网格点数据对应的三维网线绘制网格点数据对应的三维网线例例3-26 绘制绘制z=x2+y2的三维网线图的三维网线图 x=0:10;X,Y=meshgrid(x)%y省略则表示省略则表示x=y Z=X.2+Y.2;mesh(X,Y,Z)3.三维表面图三维表面图三维表面图与网线图相似,但不同的是网线图中网三维表面图与网线图相似,但不同的是网线图中网格范围内的区域为空白,而三维表面图则用颜色来填格范围内的区域为空白,而三维表面图则用颜色来填充。充。surf(X,Y,Z,C)%绘制网格点数据对应的三维表面图绘制网格点数据对应的三
23、维表面图另外,另外,surf函数还有两个派生的函数函数还有两个派生的函数surfc和和surfl,surfc用来绘制三维表面图并加等高线,用来绘制三维表面图并加等高线,surfl用来绘制用来绘制三维表面图并加光照效果。三维表面图并加光照效果。1.设置视角设置视角view(az,el)%通过方位角和俯仰角设置视角通过方位角和俯仰角设置视角view(x,y,z)%通过通过(x,y,z)直角坐标设置视角直角坐标设置视角2.设置色彩设置色彩MATLAB使用使用colormap函数来设置色图以及函数来设置色图以及显示色图矩阵的值,使用显示色图矩阵的值,使用colorbar显示色图的显示色图的颜色条。颜色条。