490 likes | 618 Views
第三章 MATLAB 图形系统. §3.1 简单图形绘制. 本节以一个简单的正弦函数曲线 例来说明图形的绘制,这一过程 在 MATLAB 中很简单。. §3.1 简单图形绘制. 设要产生从 0 到 2pi 之间的正弦函数,则 可按下列步骤进行: 1. 产生 x 轴、 y 轴数据: x=0:pi/20:2*pi y=sin(x) 2. 打开一个新的图形窗口: figure(1). §3.1 简单图形绘制. 3. 绘制出正弦曲线: plot(x, y, ‘ r- ’ ) ‘ r- ’ 表示以红色实线绘制出正弦曲线。
E N D
§3.1 简单图形绘制 本节以一个简单的正弦函数曲线 例来说明图形的绘制,这一过程 在MATLAB中很简单。
§3.1 简单图形绘制 设要产生从0到2pi之间的正弦函数,则 可按下列步骤进行: 1.产生x轴、y轴数据: x=0:pi/20:2*pi y=sin(x) 2.打开一个新的图形窗口:figure(1)
§3.1 简单图形绘制 3.绘制出正弦曲线:plot(x, y, ‘r-’) ‘r-’表示以红色实线绘制出正弦曲线。 4.给图形加上栅格线:grid on 这样就可以得到如书P81图3.1所使得正 弦曲线。 从这一过程看出,在MATLAB中建立曲线图是很方变的。
§3.1 简单图形绘制 我们还可以将图形窗口进行分割,从而 可在每个窗口各绘制一条曲线。例如将图 形窗口分割成2*2的窗格,分别绘制出正弦、 余弦、正切、余切函数曲线。 程序和图见书P82页。
§3.2 图形标注 绘制图形后,还应该给图形进 行标注。例如,可给每个图加上 标题、坐标轴标记和曲线说明等。
§3.2 图形标注 例如: 给书图3.1加上标题和轴标记,可输入:title(‘sin(\alpha)’) xlabel (‘alpha’) ylable(‘sin(\alpha)’) 则可得到如书图3.3所示的结果。这里\alpha表示,取自于text字符集。
§3.2 图形标注 1. 利用 legend函数可对图中的曲线进行 说明。 例如,在同一张图上可得到两条曲线, 这时利用legend函数可方便的标注各自 的曲线。 注意:字符串中^表示上标,_表示下标。
§3.2 图形标注 2. 利用text函数也可以标注函数曲线。 对于更复杂的曲线图形,可利用gtext函 数对曲线进行标注。 gtext与text类似,只是可以利用鼠标来 放置文本,因此可交互式的对图形曲线 进行标注。
§3.3 对数和极坐标系图形绘制 1.有时变量变化范围非常大,如x轴 从0.01到100,这时如果仍采用plot 灰土,就会失去局部可视性。因此应 用对数坐标系来绘图。在对数坐标 中可清晰地看到局部。
§3.3 对数和极坐标系图形绘制 2. 对于任一矩阵,通过eig函数可求其特征值。为了解这一矩阵的特性,我们期望直观地显示出特征值。由于特征值一般为复数,因此在极坐标上绘制它会更方便、更直观。
§3.4 复杂图形绘制 在同一个图形窗口中绘制多条曲线是 MATLAB的一大功能,有多种方法。 一. 将曲线数据保存在n*m的矩阵y中,而x 为相应的x轴向量n*1或1*n,则plot(x,y)可 在同一个图形窗口中绘制出m条曲线。
§3.4 复杂图形绘制 注意:方法一是用于由其它软件产生的数据,然后由load命令读入MATLAB到中,然后再绘制出曲线。 二.绘制多条曲线的第二种方法是在一个 plot函数中分别指定每条曲线的数据。
§3.4 复杂图形绘制 三.利用hold on函数绘制多条曲线. 先在图形窗口中绘制出第一条曲线,然后再利用hold on,使之保持原有图形, 最后绘制出第二条、第三条…曲线。 利用这种方法可在绘制函数曲线后,同 时在数据点上以记号标注。
§3.4 复杂图形绘制 四. 利用函数plotyy可绘制出双y轴 的图形,这样在同一张图上表 示两条曲线时,可拥有各自的 y轴。
§3.5 坐标轴控制 1.利用box函数可控制图形的边框,box off 可关闭图形边框,这时图形只有x-y轴,而 没有上、右边框,这样绘制的图形与通常 在坐标纸上所画的图形一致。 2.利用axis可控制坐标轴的刻度,这样在两 个图形对比时,可有相同的比例因子。
§3.5 坐标轴控制 3.axis equal可是输出图形的x、y轴等长,因此在图形窗口绘制的圆或椭圆都可以用圆来表示。 4.axis off命令可关闭坐标轴的显示,从而 可产生不含坐标轴的图形。
§3.6 颜色控制 1. 在绘制曲线时可直接指定曲线的颜色, 在标注文本如title、xlabel、ylabel、zlabel、 text命令中,可利用文本特性color来指定 文本颜色。 2. 利用colormap函数可改变每种颜色的色 调。MATLAB提供了许多种不同用途的颜色 板。
§3.6 颜色控制 MATLAB专门提供了人体脊骨的图像,利 用bone颜色板可清晰的显示这一图像。 MATLAB程序为: load spine image(X) colormap bone title(‘人体脊骨图’)
§3.8图形函数 • 表3-1 一.基本图形和图形操作 1.plot 功能:线性二维图形。 说明:当Y为实向量时,plot(Y)以Y的序号作为X轴,绘制出二为曲线;当以Y为实向量时,则plot(Y)相当于plot(real(Y),imag(Y)),即Y的实部为X轴,虚轴为虚轴为Y轴。 plot(X1,Y1,…)可按(X1,Y1),(X2,Y2),…成对绘制出曲线,而且在同一张图上以不同形式显示。如果Xn,Yn至一位矩阵,则取矩阵的行或列与另一个向量构成数据对绘制出曲线。 plot(x1,y1,linespec,…)可绘制出所有由三袁组(Xn,Yn,LineSpec) 指定的曲线,其中LineSpec用于指定线型,标记和线的颜色。 plot(…,’PorpertyName’,PropertyValue,…)可设置图形对象的属性。 h=plot(…)可绘制出图形的同时,得到各条曲线的句柄向量
§3.8图形函数 • 一.基本图形和图形操作 2.loglog 功能:对数坐标图形。 说明:loglog函数类似于plot函数,唯一不同的是在绘图时以对书坐标来标注 。
§3.8图形函数 • 一.基本图形和图形操作 3.semilogx,semilogy 功能:半对数坐标图形。 说明:semilogx和semilogy与plot,loglog函数类似,只是X轴Y轴采用对数表示。 4.polar 功能:绘制极坐标图形。 说明:polar函数可在迪卡尔坐标内绘制出一极坐标形式的曲线,并可绘制出极坐标栅格线。
§3.8图形函数 • 一.基本图形和图形操作 5.poltyy 功能:绘制左右边都饱含Y轴的图像。 说明:poltyy(X1,Y1,X2,Y2)可绘制出(X1,Y1)曲线,其Y轴标记在左边,同时绘制出(X1,Y1)曲线,其Y轴标记在右边。 poltyy(X1,Y1,X2,Y2,’function’)可利用字符串function制定的函数来取代磨人的plot函数。Function可取polt,semilogxsemilogy,loglog,stem及用户自己缩写的M函数文件。
§3.8图形函数 • 一.基本图形和图形操作 6.figure 功能:建立图形(窗口)。 说明:figure可打开一个新的窗口,以供后续绘图命令输出图形。 figure(‘PorpertyName’,PorpertyValue,…),在建立图形的同时,设置图形的指定特性,参见表3.3。 figure(h)有两种情况,当h为已存在图形的句柄时,则打开这一图形作为当前图形,当h不为句柄且为整数时,则figure(h)可建立一图形窗口,并给他分配句柄h. h=figure(…)还可得到句柄。
§3.8图形函数 • 一.基本图形和图形操作 7.close 功能:关闭图形窗口,即删除指定的图形。 说明:close可删除当前图形;close(h)可删除句柄为h的图形;close name将删除由name指定的所有图形;close all可删除所有图形(不包括句柄隐含的图形);close all hidden可删除所有的图形。 status=close(…)除了删除图形外,还可以得到删除操作的状态: .1 删除成功 .0 删除失败
§3.8图形函数 • 一.基本图形和图形操作 8.clf 功能:清除当前图形窗口。 说明:clf可从当前图形中删除所有的图形对象,但不删除这一图形窗口。这一点与close命令不同。 clf reset可在当前图形中删去所有的图形对象,并将所有的图形特性(position除外)复位到缺省位。
§3.8图形函数 • 一.基本图形和图形操作 9.gcf 功能:获得当前图形的句柄。 说明:h=gcf可获得当前图形的句柄。 h=get(0,’CurrentFigure’)这时会得到一个空阵列h。
§3.8图形函数 • 一.基本图形和图形操作 10.refesh 功能:重画当前图形。 说明: refesh可重新划出当前图形;refesh(h)可重新划出由h指定的图形。
§3.8图形函数 • 二. 图形注释 1.title 功能:给当前坐标系加上标题。 说明:title(‘string’)可将指定字符串作为标题;title(fname)可将执行制定函数fname是产生的字符串作为标题。 title(…’PorpertyName’,PorpertyValue,…)可为标题文本指定特性。 h=title(…)还可以得到比标题文本的控制句柄。
§3.8图形函数 • 二. 图形注释 2.text 功能:在当前坐标系中建立文本对象。 说明:text(x,y,’string’)可在土星的(x,y)点上放置指定的字符串,(x,y)的单位由Unit特性决定;text(x,y,z,’string’)用在三维图像上。 text(…’PorpertyName’,PorpertyValue,…)可在放置字符串的同时,指定文本的特性;见表3.4 text(‘PotpertyName’,PorpertyValue,…)用来只指定文本的特性; h=text(…)还可以得到文本对象的句柄。
§3.8图形函数 • 二. 图形注释 3.gtext 功能:利用鼠标在二维图形上放置文本。 说明: gtext(‘string’)可利用鼠标将指定字符串放在图形的任意位置;h=gtext(‘string’)还可以得到该文本图形对象的句柄。
§3.8图形函数 • 二. 图形注释 4.xlable,ylable,zlable 功能:x,y,z轴的标记。 说明: 利用xlable,ylable,zlable可给x,y,z轴加上标记。 有关可设定的文本特性可参见text中的表3.4
§3.8图形函数 • 二. 图形注释 5.legend 功能: 给每个坐标系加上插图说明。 说明: legend可在土上给出插图说明,对图中的每一条曲线,legend会在指定文本字符串的边上给出线型,记号及颜色。
§3.8 图形函数 三.坐标系控制 1.subplot 建立和控制多个坐标系。 subplot可将图形窗口分成举行窗格,并 按行编号,每窗格上可建立一个坐标系, 后续的绘图命令会在当前窗格上绘制图形。 subplot(m,n,p)可将图形窗口分割成m*n个 窗格,并将第p个窗格置成当前窗格。
§3.8 图形函数 subplot(h)可使句柄h坐标系变成当前坐 标系。 subplot(‘Position’,[left,bottom,width, height])可在指定位置建立指定尺寸的坐标系。 h=subplot(…)还可以得到新坐标系的句。柄。
§3.8 图形函数 2.hold 在图形窗口中保持当前图形。 hold函数可决定所绘制的图形是添加到图形上,还是取代已绘制的图形。 hold on表示保持当前图形。 hold off表示关闭这种保持特性。 hold命令可在两种状态(on,off)之间切换。 hold的状态可由ishold函数来测定。
§3.8 图形函数 3.grid 给图形加上栅格线。 grid on表示给当前坐标系加上栅格线。 grid off表示从当前坐标系中删去栅格线。 grid命令可在这两种状态之间切换。
§3.8 图形函数 4.axes 建立坐标系图形对象。 axes是建立坐标系图形对象的低级函数,可在当前窗口中建立坐标系图形对象,其特性取其缺醒值。 axes(h)可使已存在的坐标系h变成当前坐标系。 h=axes(…)还可以得到所建坐标系的句柄。
§3.8 图形函数 5. axis 坐标轴刻度 axis函数通常可通过设置坐标系特性来获得。 axis([xmin xmax ymin ymax])可为x轴和y 轴设置一个极限范围。 axis([xmin xmax ymin ymax zmin zmax]) 可同时设置x、y、z轴的范围。
§3.8 图形函数 v=axis可得到当前坐标系的轴范围。 axis auto可将当前坐标系的轴范围设置为自动方式。 axis manual可冻结当前坐标轴的刻度范围, 这时如果设置hold on,并绘制另一个图形 则其轴范围不会改变。
§3.8 图形函数 6. box 控制坐标系边框。 box on可在当前坐标系中显示一个边框,这时缺醒情况。 box off可去掉边框,这时图中只含坐标轴 box命令可在这两种状态之间切换。
§3.8 图形函数 四.其他重要函数 1.get 获得图形对象的特性。 get(h)可获得由h制定的图形对象的所有特 性及其当前值。 get(h,’PropertyName’)只得到指定的特性值。 P=get(H,pn)中,H为m维向量。
§3.8 图形函数 a=get(0,’Factory’)可得到用户可设置特性的出厂值。 a=get(0,’FactoryObjectTypePropertyName’) 可得到指定对象类型的指定特性的出厂值。
§3.8 图形函数 a=get(h,’Default’)可得到指定对象h的当前缺醒值。 a=get(h,’DefaultObjectTypePropertyName’)可得到指定对象类型的指定缺醒值。 a=get(h,’DefaultFigureColor’)可得到图形颜色缺醒值。
§3.8 图形函数 2.set 设置图形对象的特性。 set(H,’PropertyName’,…)可对由H知识的对象设置制定的特性。 set(H,a)中,a结构阵列,这样可对多个对象设置多种特性。 set(H,pn,P)中,P为m*n元的单元阵列,用于指定多个对象的多个特性。
§3.8 图形函数 3.rotate 沿着指定方向旋转对象。 rotate可在三维空间上按右手准则旋转图形对象。 rotate(h,direction,alpha)可将指定对象h璇转alpha角,direction为二元或三元向量,它与原点相连构成旋转轴。
§3.8 图形函数 4.colormap 设置和获取当前图形的颜色板。 颜色板是一个m*3的矩阵,其值在0.0到 1.0之间,分别表示红、绿、蓝三种颜色, 颜色板的每一行定义了一种颜色。
§3.8 图形函数 colormap(map)可将颜色板设置成map , 当map中含有[0.0,1.0]之外的时,MATLAB 会产生一出错信息。 colormap(‘default’)可将颜色板设置成缺醒的颜色板。 cmap=colormap可得到当前使用的颜色。
§3.8 图形函数 作业:课后习题 P122: 1-10