1、第五章 MATLAB绘图,本章教学目标 1、熟练掌握MATLAB二维图形的绘制 2、了解隐函数绘图 3、熟练掌握三维图形绘制 4、熟练掌握各种特殊图形的绘制,本章的主要内容5.1 二维曲线图 5.2 隐函数绘图 5.3 三维图形绘图,5.1 二维曲线图,5.1.1 图形窗口简介MATLAB一向注重数据的图形表示,所有 的图形窗口的开发使用都是为了让用户通过 更为直观的方法直接体会数据间的含义。,1、figure及相关指令在MATLAB术语中,有一个显示图形窗口叫做 “figure”,不同的figure命令可以用其句柄(handle)加以 区分。不带参数的figure命令用来产生一个新的figu
2、re 窗口,返回其句柄。也可以带一个整型参数:figure(H),表示打开一个新的figure窗口并且其 句柄为H。如果句柄为H的figure窗口已经存在,则此命令将 它变为可见,即置于其他所有子窗口的上面,并且把 它变成“当前”的figure,在这里,“当前”的含义是:以 后的图形操作如果不指明figure句柄,则都是针对这个 figure进行的。,2、subplot及其相关指令 MATLAB可以将窗口区域分成若干个小的窗口,每一个窗口相当于一个figure,在小窗口中可以像在整个窗口中一样进行图形的绘制工作。完成这个工作的命令是subplot。 命令subplot(m,n,i)把图形窗口分
3、成mn个小图形区域,并指定第i个为图形的绘制区域。和矩阵不同,图形区域的编排采用行优先的原则。,5.1.2 plot指令绘图 1、绘制一条二维曲线 MATLAB中最常用的就是plot指令,其具体调用格式为 plot(x) %绘制以x为纵坐标的二维曲线 plot(x,y) %绘制以x为横坐标y为纵坐标的二维曲线 说明:x和y可以是向量或矩阵。,例1、用plot(x)命令画直线。,x2=0 1 0 x2 =0 1 0 plot(x2),x1=1 2 3 x1 =1 2 3 plot(x1),例2 在0x2区间内,绘制曲线y=2e-0.5xcos(4x),例3 绘制如下曲线 (1) x=t.*sin
4、(3*t); (2)y=t.*sin(t).*sin(t);,2.绘制多条二维曲线 x1=1 2 3;4 5 6;plot(x1);x2=peaks; %产生一个49*49的矩阵plot(x2);,3.plot(x,y)绘制混合式曲线 当plot(x,y)命令中的参数x和y是向量或矩阵时,分别有以下几种情况: 如果x是向量,而y是矩阵,则x的长度与矩阵y的行数或列数必须相等,如果x的长度与y的行数相等,则向量x与矩阵y的每列向量对应画一条曲线;如果x的长度与y的列数相等,向量x与y的每行向量画一条曲线,如果y是方阵,则x和y的行数和列数都相等,将向量x与矩阵y的每列向量画一条曲线; 如果x是矩
5、阵,而y是向量,则y的长度必须等于x的行数或列数,绘制的方法与前一种相似; 如果x和y都是矩阵,则大小必须相同,矩阵x的每列和y的每列画一条曲线。,例 x1=1 2 3;y1=1 2 3;4 5 6 y1 =1 2 34 5 6 plot(x1,y1) %每行一条曲线,4.曲线的线型、颜色和数据点形 plot命令还可以设置曲线的线段类型、颜色和数据点形等,如下表所示,plot(x,y,s) 说明:x为横坐标矩阵,y为纵坐标矩阵,s为类型说明字符串参数;s字符串可以是线段类型、颜色和数据点形三种类型的符号之一,也可以是三种类型符号的组合。,5.1.2 特殊二维图形 在各种专业上常常碰到一些场合,
6、需要把数据以分类的形式显示出来,例如:按月份组织年度销售收入、在信号处理需要绘制时间信号的波形、气象工作者需要显示若干地区的平均气温数据等。为了满足这些特殊要求而需要采用特殊的平面图形。实际工作中人们习惯用直方图、条形图、扁形图等表达这些数据,MATLAB为此设计了一些专门用于绘制这些特殊平面图形的函数,使得这些工作变得非常简单。,1、条形图 条形图常用于统计数据的作图,绘制条形图的函数有以下几种。 bar 竖直条形图 barth 水平条形图 bar3 三维竖直条形图 bar3th 三维水平条形图,bar(X,Y) X为横坐标向量,Y可以使向量或者矩阵。Y是向量时,每个元素对应于一个竖条,Y是
7、m行n列的矩阵时,将画出m组竖条,每组包含n个条 例 假想某城市一年12月份的平均气温数据,划出其条形图 x=1:12; y=-12 -6 4 11 23 26 36 30 21 17 10 3; bar(x,y),2、直方图 直方图和条形图的形状相似,但作用不同,它主要用于显示数据的分布规律。 用于建立直方图的函数有hist和rose,其调用方式如下: N=hist(y) 使用10个等距离分布的区间来对向量y的分布进行统计,并返回每个区间上含有y中元素的个数。 N=hist(y,m) 使用m个区间进行估计 rose的用法和hist的用法相似,只是把数据作为弧度值处理,在极坐标系中建立直方图。
8、,例 直方图绘制 Y=rand(15000,2); hist(Y),设置坐标轴和文字控制 1、坐标轴控制 用坐标控制命令axis来控制坐标轴的特性,下表列出了其常用控制命令,2. 文字标注 (1) 添加图名 语法:title(s) %书写图名 说明:s为图名,为字符串,可以是英文或中文。 (2) 添加坐标轴名 语法:xlabel(s) %横坐标轴名ylabel(s) %纵坐标轴名 (3) 添加图例 语法:legend(s,pos) %在指定位置建立图例legend off,(4) 添加文字注释 语法:text(xt,yt,s) %在图形的(xt,yt)坐标处书写文字注释,5.2 隐函数绘图MA
9、TLAB提供了一个ezplot函数绘制隐函数图 形,下面介绍其用法。 (1) 对于函数f = f(x),ezplot函数的调用格式为: ezplot(f):在默认区间-2x2绘制f = f(x)的图 形。 ezplot(f, a,b):在区间axb绘制f = f(x)的图 形。 (2) 对于隐函数f = f(x,y),ezplot函数的调用格式 为: ezplot(f):在默认区间-2x2和-2y2 绘制f(x,y) = 0的图形。,ezplot(f, xmin,xmax,ymin,ymax):在区间xminxxmax和yminyymax绘制f(x,y) = 0的图形。 ezplot(f, a
10、,b):在区间axb和ay b绘制f(x,y) = 0的图形。 (3) 对于参数方程x = x(t)和y = y(t),ezplot函数的调用格式为: ezplot(x,y):在默认区间0t2绘制x=x(t)和y=y(t)的图形。 ezplot(x,y, tmin,tmax):在区间tmin t tmax绘制x=x(t)和y=y(t)的图形,5.3 三维图形绘图,5.3.1 三维曲线绘制 在MATLAB中三维曲线绘制可以使用plot3命令。它的使用格式与二维绘图的plot命令很相似。 语法: plot3(x,y,z, s) %绘制三维曲线plot3(x1,y1,z1, s1,x2,y2,z2,
11、 s2,) %绘制多条三维曲线 说明:当x、y、z是同维向量时,则绘制以x、y、z元素为坐标的三维曲线;当x、y、z是同维矩阵时,则绘制三维曲线的条数等于矩阵的列数。s是指定线型、色彩、数据点形的字符串。,5.3.2 三维曲面绘图 1. meshgrid命令 为了绘制三维立体图形,MATLAB的方法是将x方向划分为m份,将y方向划分为n份,meshgrid命令是以x、y向量为基准,来产生在x-y平面的各栅格点坐标值的矩阵。 语法:X,Ymeshgrid(x,y) 说明:X、Y是栅格点的坐标,为矩阵;x、y为向量。,2. 三维网线图 语法:mesh(z) %画三维网线图mesh(x,y,z,c)
12、 说明:当只有参数z时,以z矩阵的行下标作为x坐标轴,把z的列下标当作y坐标轴;x、y分别为x、y坐标轴的自变量;当有x、y、z参数时,c是指定各点的用色矩阵,当c省略时默认用色矩阵是z的数据。如果x、y、z、c四个参数都有,则应该都是维数相同的矩阵。,3. 三维曲面图 语法:surf (z) %画三维曲面图surf (x,y, z,c) 说明:参数设置与mesh命令相同,c也可以省略。,4.其它立体网线图和曲面图 meshc命令为立体网状图加等高线;meshz为立体网状图加“围裙”。 5. 等高线图形 MATLAB提供了另一种基本的三维图形-等高线图形,函数clabel、contour、co
13、ntour3、contourf都用于绘制等高线图。其中,函数contour和contour3用于绘制二维和三维的等高线,它们的调用方式是相同的,只有函数contour3的要绘制相应的z轴。以contour为例,其调用方式为 contour(Z) 直接绘制矩阵Z的等高线 contour(X,Y,Z) 用X和Y指定等高线的x和y坐标 contour(Z)和contour(X,Y,Z) 用标量n指定绘制等高线的线条数(丛最低位置到最高位置所用的线条总数),6、视角变换 两个图形,一个是以30。视角向下看z=0平面,一个是以37.5。视角向上看x=0平面。这是对所有三维图形的默认视角。与z=0平面所成
14、的方向角叫做仰角,与x=0平面所成的夹角叫做方位角。这样默认的三维视角方向仰角为30。,方位角为-37.5。,而默认的二维视图仰角为90。,方位角0。 所谓视角,简单地讲就是观察(显示)图形的方向,调整视角可以使得一幅图显示出来自不同方向的观察结果。在MATLAB中,函数view改变所有类型的二维和三维图形的图形视角。它的基本调用格式如下 view(az,el) 设置观察图形的视角 说明:az(Azimuth)为方位角,el(Elevation)为视角,单位是度。,应用实例: 1.读取实验数据,并显示其灰度值。 2.某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):
15、 price200 没有折扣200price500 3%折扣500price1000 5%折扣1000price2500 8%折扣2500price5000 10%折扣 5000price 14%折扣 (1)输入所售商品的价格,求其实际销售价格。 (2)用条形图来表示价格情况。,(1)price=input(请输入商品价格); switch fix(price/100) case 0,1 %价格小于200rate=0;case 2,3,4 %价格大于等于200但小于500rate=3/100;case num2cell(5:9) %价格大于等于500但小于1000rate=5/100;case num2cell(10:24) %价格大于等于1000但小于2500rate=8/100;case num2cell(25:49) %价格大于等于2500但小于5000rate=10/100;otherwise %价格大于等于5000rate=14/100; end price=price*(1-rate) %输出商品实际销售价格(2) bar(X,Y),