• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

MATLAB绘图与图形处理(3)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

7.3  通用图形函数命令

7.3.1  图形对象句柄命令

命令 figure

功能  创建一个新的图形对象。图形对象为在屏幕上单独的窗口,在窗口中可以输出图形。

用法  figure 用缺省的属性值创建一个新的图形对象。

      figure(\'PropertyName\',PropertyValue,对指定的属性PropertyName用指定的属性值PropertyValue(属性名与属性值成对出现)创建一个新的图形窗口,对于那些没有指定的属性,则用缺省值。属性名与有效的属性值见下表。

      figure(h) 1. h为一个已经存在的图形的句柄,则figure(h)使由h标记的图形成为当前图形,使它可见,且在屏幕上把它显示到所有图形之前。当前图形为图像输出的地方。

              2. 若h不是已经存在图形的句柄,但是为一整数,则该命令生成一图形窗口,同时把该窗口的句柄赋值为h;若h不是一图形窗口的句柄,也不是一整数,则返回一错误信息。

      h = figure(返回图形窗口对象的句柄给h

7-10

属性名

属性说明

有效属性值

窗口位置

Position

图形窗口的位置与大小

有效值:四维向量[left,bottom,

        width,height]

缺省值:决定于显示

Units

用于解释属性Position的单位

有效值:inches(英寸)

centimeters(厘米)

normalized(标准化单位,认为窗口为一长宽都是1)

points(点)

pixels(像素)

characters(字符)

缺省值:pixels

指定类型与外在显示

Color

窗口的背景颜色

有效值:ColorSpec(有效的颜色 参数)

缺省值:取决于颜色表(参见命令colordef)

Menubar

转换图形窗口菜单条的“开”与“关”

有效值:nonefigure

缺省值:figure

Name

显示图形窗口的标题

有效值:任意字符串

缺省值:‘’(空字符串)

NumberTitle

标题栏中是否显示’Figure No. n’,其中n为图形窗口的编号

有效值:onoff

缺省值:on

Resize

指定图形窗口是否可以通过鼠标改变大小

有效值:onoff

缺省值:on

SelectionHighlight

当图形窗口被选中时,是否突出显示

有效值:onoff

缺省值:on

Visible

确定图形窗口是否可见

有效值:onoff

缺省值:on

WindowStyle

指定窗口为标准窗口还是典型窗口

有效值:normal(标准窗口)、

        modal(典型窗口)

缺省值:normal

控制色图

Colormap

图形窗口的色图

有效值:m*3阶的RGB颜色矩阵

缺省值:jet色图

Dithermap

用于真颜色数据以伪颜色显示的色图

有效值:m*3阶的RGB颜色矩阵

缺省值:有所有颜色的色图

DithermapMode

是否使用系统生成的抖动色图

有效值:automanual

缺省值:manual

FixedColors

不是从色图中获得的颜色

有效值:m*3阶的RGB颜色矩阵

缺省值:无(只读模式)

MinColormap

系统颜色表中能使用的最少颜色数

有效值:任一标量

缺省值:64

ShareColors

允许MATLAB共享系统颜色表中的颜色

有效值:onoff

缺省值:on

指定透明度

Alphamap

图形窗口的α色图,用于设定透明度。

有效值:m*1维向量,每一分量在[0 1]之间

缺省值:64*1维向量

指定渲染模式

BackingStore

打开或关闭屏幕像素缓冲区

有效值:onoff

缺省值:on

DoubleBuffer

对于简单的动画渲染是否使用快速缓冲

有效值:onoff

缺省值:off

Renderer

用于屏幕和图片的渲染模式

有效值:painterszbufferOpenGL

缺省值:系统自动选择

关于图形窗口的一般信息

Children

显示于图形窗口中的任意对象句柄

有效值:句柄向量

 

FileName

命令guide使用的文件名

有效值:字符串

Parent

图形窗口的父对象:根屏幕

有效值:总是0(即根屏幕)

Selected

是否显示窗口的“选中”状态

有效值:onoff

缺省值:on

Tag

用户指定的图形窗口标签

有效值:任意字符串

缺省值:\'  \'(空字符串)

Type

图形对象的类型(只读类型)

有效值:\'figure\'

UserData

用户指定的数据

有效值:任一矩阵

缺省值:[](空矩阵)

RendererMode

缺省的或用户指定的渲染程序

有效值:automanual

缺省值:auto

关于当前状态的信息

CurrentAxes

在图形窗口中的当前坐标轴的句柄

有效值:坐标轴句柄

CurrentCharacter

在图形窗口中最后一个输入的字符

有效值:单个字符

CurrentOject

图形窗口中的当前对象的句柄

有效值:图形对象句柄

CurrentPoint

图形窗口中最后单击的按钮的位置

有效值:二维向量[x-coord

                    y-coord]

SelectionType

鼠标选取类型

有效值:normalextendedaltopen

回调程序的执行

BusyAction

指定如何处理中断调用程序

有效值:cancelqueue

缺省值:queue

ButtonDownFcn

当在窗口中空闲点按下鼠标按钮时,执行的回调程序

有效值:字符串

缺省值:\'  \'(空字符串)

CloseRequestFcn

当执行命令关闭时,定义一回调程序

有效值:字符串

缺省值:closereq

CreateFcn

当打开一图形窗口时,定义一回调程序

有效值:字符串

缺省值:\'  \'(空字符串)

DeleteFcn

当删除一图形窗口时,定义一回调程序

有效值:字符串

缺省值:\'  \'(空字符串)

Interruptible

定义一回调程序是否可中断

有效值:onoff

缺省值:on(可以中断)

KeyPressFcn

当在图形窗口中按下一键时,定义一回调程序

有效值:字符串

缺省值:\'  \'(空字符串)

ResizeFcn

当图形窗口改变大小时,定义一回调程序

有效值:字符串

缺省值:\'  \'(空字符串)

UIContextMenu

定义与图形窗口相关的菜单

有效值:属性UIContrextmenu的句柄

WindowButtonDownFcn

当在图形窗口中按下鼠标时,定义一回调程序

有效值:字符串

缺省值:\'  \'(空字符串)

WindowButtonMotionFcn

当将鼠标移进图形窗口中时,定义一回调程序

有效值:字符串

缺省值:\'  \'(空字符串)

WindowButtonUpFcn

当在图形窗口中松开按钮时,定义一回调程序

有效值:字符串

缺省值:\'  \'(空字符串)

访问对象的控制

IntegerHandle

指定使用整数或非整数图形句柄

有效值:onoff

缺省值:on(整数句柄)

HandleVisiblity

指定图形窗口句柄是否可见

有效值:oncallbackoff

缺省值:on

HitTest

定义图形窗口是否能变成当前对象(参见图形窗口属性CurrentObject)

有效值:onoff

缺省值:on

NextPlot

在图形窗口中定义如何显示另外的图形

有效值:replacechildrenaddreplace

缺省值:add

定义鼠标指针

Pointer

选取鼠标记号

有效值:crosshairarrowtoprwatchtoplbotlbotrcirclecrossfleurleftrighttopfullcrosshairbottom ibeamcustom

缺省值:arrow

PointerShapeCData

定义鼠标外形的数据

有效值:16*16阶矩阵

缺省值:将鼠标设置为\'custom\'且可见

PointerShapeHotSpot

设置鼠标活跃的点

有效值:二维向量[rowcolumn]

缺省值:[1 1]

7-46

>>scrsz = get(0,\'ScreenSize\');

>>figure(\'Position\',[1 scrsz(4)/2 scrsz(3)/2 scrsz(4)/2])

执行上面的语句,会在屏幕的左上角生成一没有任何符号的窗口。

命令2  line

功能  生成线(line)对象。命令line在当前坐标轴中生成一个线对象。用户可以指定线的颜色,宽度,类型和标记符号等其他特性。

命令line 有两种形式:

1.自动循环使用颜色和类型。当用户用非正式语法来指定矩阵坐标数据:line(X,Y,Z),Matlab将循环使用由坐标轴ColorOrder和LineStyle指定的颜色顺序和类型顺序。

2.纯粹低级操作。当用户用属性名和属性值调用命令line

       line(‘XData’,x,’YData’,y,’ZData’,z)

Matlab将在当前用缺省的颜色(参见命令colordef的使用)画出线对象。注意一点的是,用户不能在命令line的低级形式中使用矩阵数据。

用法  line(X,Y) 在当前的坐标轴中画出由向量xy定义的线条。若xy为同型的矩阵,则对于xy的每一列画出一线条。

line(X,Y,Z) 在三维空间中画出由xyz定义的线条。

line(X,Y,Z,\'PropertyName\',PropertyValue,画出由参数xyz确定的线条,其中对指定属性PropertyName设置为PropertyValue,其他没有指定属性用缺省值。属性LineStyle和Marker参见命令plot

line(\'PropertyName\',PropertyValue,对属性用相应的输入参数来设置而画出线条。这是命令line的低级使用形式,此时不接受矩阵参数。除了该情形,其他形式都接受矩阵参数。

h = line(返回每一条线的线对象对应的句柄向量。

7-11

属性名

说明

有效属性值

定义对象的数据

Xdata

定义线条的x-轴坐标参量

有效值:向量或矩阵

缺省值:[0 1]

Ydata

定义线条的y-轴坐标参量

有效值:向量或矩阵

缺省值:[0 1]

Zdata

定义线条的z-轴坐标参量

有效值:向量或矩阵

缺省值:[0 1]

定义线型与数据点标记符

LineStyle

定义线条的类型

有效值:---、:、、-.、  none

缺省值:-(实线)

LineWidth

定义线条的宽度(以磅为单位)

有效值:一标量

缺省值:0.5磅

Marker

定义标记数据点的标记符号

有效值:13种类型之一

缺省值:none

MarkerEdgeColor

定义标记颜色或可填充标记的边界颜色

有效值: autonone ColorSpec

缺省值:auto

MarkerFaceColor

定义封闭形标记的填充颜色

 

MarkerSize

定义标记大小

有效值:标量(磅)

缺省值:6(磅)

控制线条的显示

Clipping 

坐标轴矩形区域是否可剪辑

有效值:onoff

缺省值:on

EraseMode

定义显示与擦除线条的方法(对于动画显示)

有效值:normalnone

    xorbackground

缺省值:normal

SelectionHighlight

当线条被选中时,是否突出显示

有效值:onoff

缺省值:on

Visible

定义线条是否可见

有效值:onoff

缺省值:on

Color

定义线条颜色

有效值:ColorSpec

对象访问的控制

HandleVisibility

定义线条句柄对其他函数是否可见

有效值:onoffcallback

缺省值:on

HitTest

定义线条能否成为当前对象

有效值:onoff

缺省值:on

关于线条的一般信息

Children 

线条没有子对象

有效值:[](空矩阵)

Parent

线条对象的父对象为坐标轴对象

有效值:坐标轴句柄

Selected

是否显示线条的“选中”状态

有效值:onoff

缺省值:on

Tag

用户定义的标签

有效值:任一字符串

缺省值:’’(空字符串)

Type

图形对象的类型(只读类型)

有效值:\'line\'

UserData

用户定义的数据

有效值:任一矩阵

缺省值:[](空矩阵)

与回调程序执行有关的属性

BusyAction

定义如何处理回调中断程序

有效值:cancelqueue

缺省值:queue

ButtonDownFcn

当在线条上按下鼠标时,定义一回调程序

有效值:字符串

缺省值:\'  \'(空字符串)

CreateFcn

当生成线条时,定义一回调程序

有效值:字符串

缺省值:\'  \'(空字符串)

DeleteFcn

当删除线条时,定义一回调程序

有效值:字符串

缺省值:\'  \'(空字符串)

Interruptible

定义回调程序是否可中断

有效值:onoff

缺省值:on(可中断)

UIContextMenu

定义与线条相关的菜单

有效值:UIContextMenu的句柄

7-47

>>t = 0:pi/20:2*pi;

>>hline1 = plot(t,exp(t).*sin(t),\'k\');

>>hline2 = line(t+.06,exp(t).*sin(t),\'LineWidth\',4,\'Color\',[.8 .8 .8]);

>>set(gca,\'Children\',[hline1 hline2])

生成图形为图7-46

 

7-46  命令line画的函数图

 

7-48

生成随机直线图:

>>line(rand(4,2),rand(4,2),rand(4,1))

>>line(rand(1,4),rand(1,4),rand(1,4))

>>line(rand(4,1),rand(4,1),rand(4,1))

>>line(rand(2,4),rand(2,4),rand(1,4))

>>line(rand(4,2),rand(4,2),rand(4,1))

生成图形为图7-47

 

 

命令3  patch

功能  生成补片图形对象。该命令为生成补片图形对象的低级图形函数。补片为一个或多个多边形,多边形的顶点为坐标中的点。用户可以指定补片的颜色与光照模式。

用法  patch(X,Y,C) 在当前坐标轴中增加二维带填充模式的补片。参量X,Y确定顶点的位置。若X,Y为矩阵(同型或不同型),系统按列生成多个多边形。若xy没有定义一封闭的多边形,则命令自动地将多边形封闭。参量xy可以定义凹的或自身交叉的多边形。可是,一个不可分隔的补片的边界自身交叉,则不能完整填充。在这种情况下,最好是将多边形分解成几个小的、自身没有交叉的多边形。参量c指定每一补片的颜色,它可以为简单的ColorSpec,每面一颜色或每一顶点一颜色。若c为三维列向量,它将被认为是一直接指定的RGB颜色。

      patch(X,Y,Z,C) 生成三维的补片对象。

      patch(FV) 用结构FV生成一补片。结构FV包含这些域名verticesfaces和可选的facevertecdata,这些域名对应于补片的Vertices属性、Faces属性、FaceVertexCData属性。

      patch(…,C,\'PropertyName\',PropertyValue) 在二维(X,Y)或三维(X,Y,Z)空间中对补片指定的属性PropertyName设置为PropertyValue。

      patch(\'PropertyName\',PropertyValue对所有指定的多个属性PropertyName设置为相应的值PropertyValue。该命令形式可以使用户免除颜色的指定,因为系统将使用缺省的面颜色和边界颜色,除非用户准确地对属性FaceColor与EdgeColor进行设置。该命令形式也允许用户通过对属性Faces与Vertices的设置来代替x-y-z-轴的输入。

      handle = patch() 返回命令patch生成的补片对象句柄。

说明  函数patch不象其他的高级的区域生成函数,例如函数fillarea,它没有检测图形窗口与坐标轴的属性NextPlot的设置情形。它只是简单地在当前坐标轴中添加补片对象而已。

有两种指定颜色的补片属性名:

1Cdata——当指定x-y-z-轴坐标(XData,YData,ZData)时使用;

2FaceVertexCData——当指定多边形的顶点与连接矩阵时使用。

以上两个属性接受颜色数据作为索引颜色或者是真颜色(RGB)。其中索引颜色数据 能代表当前色图的直接索引或者代表映射到整个色图的线性数据的比例数值。

命令4  surface

功能  生成面对象。该命令是生成面图形对象的低级函数。面对象为由矩阵元素的A(I,j)所在的行下标I为x-坐标,所在的列下标jy-坐标,元素值为z-坐标确定的点生成的空间多边形。

用法  surface(Z) 画出由矩阵z确定的曲面,其中z为定义在一几何矩形区域上的单值函数。

      surface(Z,C) 画出颜色由c指定的、面由z指定的空间曲面。

      surface(X,Y,Z) 曲面由参数xyz确定,颜色参数c=z,因此颜色能恰当地反映曲面的高度。

      surface(X,Y,Z,C) 曲面由参数xyz确定,颜色由参数c确定。

      Surface(x,y,Z) 参数xy为向量,若[m,n]=size(z),则要求length(x)=n,length(y)=m,面上的点由(x(j),y(i),z(I,j))确定。

      Surface(x,y,Z,C) 曲面确定如上情形,颜色由参数c确定。

      surface(\'PropertyName\',PropertyValue,对指定的曲面属性PropertyName指定为PropertyValue,对曲面进行细微控制。

      h = surface(返回生成面对象的句柄。

命令5  image

功能  显示图片对象。该命令通过对矩阵c中每一个元素(每一元素作为引用图形色图下标或直接给出RGB值)的解释而生成一个图片对象。Image命令有两种使用格式:

1.一个调用命令newplot的高级函数,可以确定在何处放置图片与坐标轴的范围为刚好围住图片;使刚生成的图片放置在坐标轴的刻度线与格栅线之上;属性Ydir设置为rervse;属性View[0 90]

2.一个增加图片到当前坐标轴的低级命令,而没有调用命令newplot,在低级使用形式中,只能对指定属性进行设置操作。

用户在命令的输入参量中可以输入属性名/属性值,结构数组,细胞数组等。

用法  image(C) C作为一图片进行显示。C中的每一个元素指定了一个“图片”矩形中的相应部分的颜色。

      image(x,y,C) (x,y)确定的位置上画C的元素。其中xy都为2维矩阵,分别指定x轴与y轴的范围,其效果与image(C)相同,只不过是进行了恰当的比例缩放。

      image(x,y,C,\'PropertyName\',PropertyValue,) 该形式为指定属性名/属性值的高级使用形式,在执行该命令之前,先执行命令newplot

      image(\'PropertyName\',PropertyValue,该形式为低级使用形式,它只接受属性名/属性值的输入。

      handle = image(返回刚生成的图片对象的句柄。用户可以从上面的任何形式的调用后获得图片句柄。

7-49

>>load clown

>>image(X,\'CDataMapping\',\'scaled\')

>>colormap(map)

图形结果为图7-48

 

 

命令6  uicontrol

功能  生成用户控制图形对象(用户界面控制)。也通过该命令运行图形用户界面。当对象被选中时,一般会执行相应的操作。系统支持多种控件,每一种都有不同的作用:

Ÿ 校验框——当单击检验框时,会执行一操作。该组件对于提供用户多个独立的选择是很有用的。要激活一校验框,只需用鼠标单击该组件即可,且选中的状态在组件上显示出来。

Ÿ 可编辑文本框——允许用户输入与修改文本文字的区域。当用户想把文字作为   输入时,可使用该组件。若一可编辑文本框有焦点,则单击文本框的菜单栏不会执行任何操作。因此,在单击菜单条后,语句get(edit_handle,’String’)并没有返回当前编辑框中的内容。因为系统必须执行回调函数来改变属性 string的值,即使屏幕上显示的文字已经改变。

Ÿ 框架——该组件为一封闭的、可见的、图形窗口区域。框架能使一用户图形界面中相关的控制组件能容易理解。框架没有相关的回调程序。只有控制组件能在框架中显示。框架不是透明的,因此用户定义的组件先后顺序决定了组件是否被框架遮住或可见。属性Stacking order决定了控制组件的显示顺序:第一个定义的组件最先显示,后面定义的控制组件则覆盖已经存在的组件。若用户要用一框架包围一些组件,则必须第一个定义框架。

Ÿ 列表框——显示一些项目的列表(用命令string设置),且允许用户选择一个或多个项目。属性Min与Max控制着选择的模式。属性Value显示可选择的项目与包含着字符串列表中项目的索引;对于选择了多个项目则用向量表示。在任何的能改变属性Value值的、鼠标松开的操作之后,系统MATLAB将马上执行列表框的回调函数。因此,用户有必要增加一“Done”按钮,用于推迟当要多次选择项目时的操作。在执行列表框回调函数Callback属性之前,列表框中项目的选择有单击或双击之分,对应于将图形窗口属性SelectionType设置为normal或open。

Ÿ 弹出菜单——当组件被按下时,打开且显示一选择列表(用命令string设置)。当没有打开时,该组件显示当前的选择项。该组件对于用户想给其他用户提供一系列的互斥的选择项,又不想占用太多的区域。

Ÿ 普通按钮——当该组件被按下时,将执行一操作。要激活一按钮,只需在按钮上按下鼠标按钮。

Ÿ 单选按钮——该组件与校验框相类似,但它包含几个互斥的、而且相关的选项(例如在任意时刻,只能选择一个状态)。要激活某一单选按钮,只需在该组件上按下鼠标即可。被选中的组件同时显示出来。

Ÿ 滑块——该组件允许用户通过移动某一范围之内的滑块来输入一指定的数值。用户要移动一滑块,只需在滑块上按下鼠标不放,且在滑块方向上移动;或者是在滑槽内单击鼠标;或者是单击滑块条上的箭头。当松开鼠标后,滑块所在位置将与一数值对应。用户可以设置滑块的最大值、最小值与当前值等。

Ÿ 静态文本框——显示文本行。静态文本经常作为其他控制对象标签,以提供其他用户相关信息,或者是显示一滑块的数值。其他用户不能交互地改变静态文本,因此对于静态文本,没有相关的回调函数。

Ÿ 触发按钮——当该组件被单击且显示出它们的状态(on或者off)时,控制是否执行回调函数。

用法  handle = uicontrol(


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Matlab绘图系列之高级绘图发布时间:2022-07-18
下一篇:
matlab 三维图像的绘制发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap