Figure对象

Figure对象是MATLAB显示图形的窗口。图形窗口包括菜单、工具条、用户界面对象、上下文菜单、坐标系和坐标系的子对象等。MATLAB本身对于图形窗口的个数没有限制。

Figure对象主要有两个方面的用途:

包含表示数据的图形;

包含图形用户界面。

Figure对象可以同时包含图形和GUI组件。例如,一个利用数据绘图的GUI可以包含坐标系和用户界面对象,即Axes对象和UI对象。

注意:Figure对象和Axes对象都可以包含作为容器的子对象。用户界面面板可以包含UI对象和作为Figure对象的子对象,组对象可以包含坐标系子对象和作为Axes对象的子对象。

1 用于绘图的图形窗口

用MATLAB函数绘图时,如果先前没有图形窗口,会自动创建一个。如果打开了多个图形窗口,则在当前窗口中绘图。

gcf命令返回当前图形窗口的句柄或创建新的图形窗口。例如,可以用下面的命令查看当前图形窗口的一系列图形属性:

code.matlab
>> get(gcf)

Root对象的CurrentFigure属性返回当前图形窗口的句柄。如果当前没有打开图形窗口,返回空值。例如:

code.matlab
>> get(0,'CurrentFigure')
ans =
[]

2 把图形窗口用作GUI

从复杂的应用程序到简单的对话框,都属于GUI的范畴。通过设置Figure对象的属性,可以修改图形窗口的很多特征,如下面的图形属性常用于创建GUI。

MenuBar—显示和隐藏图形窗口的菜单;

Name—改变图形窗口的名称;

HandleVisibility—控制图形句柄的可见性;

ResizeFcn—创建回调,在用户改变图形窗口的大小时运行;

Toolbar—控制图形窗口工具条的显示;

UIContextMenu—指定一个上下文菜单;

WindowButtonDownFcn,WindowButtonMotionFcn,WindowButtonUpFcn—定义回调,用户在图形窗口上单击、拖拉或释放鼠标时运行;

WindowStyle—指定图形窗口类型。

3 确定图形窗口的位置和大小

Figure对象的Position属性控制图形窗口在屏幕上的大小和位置。启动时,MATLAB会根据计算机屏幕的大小定义Position属性的默认值。默认时创建的图形窗口大小约为屏幕大小的四分之一。

MATLAB将图形窗口的Position属性值定义为矢量,即

[left bottom width height]

其中,left和bottom定义窗口左下角像素的坐标,相对于屏幕左下角指定;width和height定义窗口内部的大小。

确定图形窗口的位置时,MATLAB不把窗口的边界计算在内,Position属性由图形窗口的内部活动区域定义。

Figure对象的Units属性确定值在屏幕上的度量单位。可以选用的度量单位有inches,centimeters,normalized,points,pixels和characters等,如下设置

code.matlab
set(gcf,'Units')
[ inches | centimeters | normalized | points | {pixels} | characters]

其中,pixels是默认选项,即用像素作为默认度量单位。

不管使用什么单位,了解用这些单位度量时屏幕的大小很重要。可以从Root对象的ScreenSize属性获取此信息。例如

code.matlab
>> get(0,'ScreenSize')
ans =
    1 1 1152 900

本例中,屏幕大小为1152×900像素。MATLAB按照Root对象Units属性确定的单位返回ScreenSize属性的值,例如

code.matlab
>> set(0,'Units','normalized')

归一化ScreenSize属性返回的值:

code.matlab
>> get(0,'ScreenSize')
ans =
    0 0 1 1

其中(0,0)对应屏幕左下角,(1,1)对应屏幕右上角。

下面生成两个图形窗口,设置不同的属性并绘图。

code.matlab
>> fg1=figure('Name','散点图');    % 设置图形窗口名称
>> fg2=figure('Name','曲面图7;,'NumberTitle','off');  % 名称前面的序号去掉
>> surf(peaks);
>> figure(fg1);      %设置为当前图形窗口
>> scatter((1:30),rand(1,30));

生成图3-2和图3-3。

Document Image Document Image
\[\]

图3-2 图形窗口1 图3-3 图形窗口2