Main Content

默认属性值

属性预定义值

几乎所有图形对象都有预定义值。预定义值有两个可能的来源:

  • 在对象前代中定义的默认值

  • 在图形对象层次结构的根级定义的出厂值

用户可以为对象属性创建默认值,且它的优先级比出厂定义值高。以下情形,对象使用默认值:

  • 在前代定义默认值的层次结构中创建

  • 在前代定义默认值的层次结构中作为父对象

指定默认值

使用包含以下三部分的字符向量定义默认属性值:

'default' ObjectType PropertyName
  • default 单词

  • 对象类型(例如,Line

  • 属性名(例如,LineWidth

指定默认线条 LineWidth 的字符向量如下所示:

'defaultLineLineWidth'

使用此字符向量指定默认值。例如,要将线条 LineWidth 属性指定为 2 磅,使用以下语句:

set(groot,'defaultLineLineWidth',2)

字符向量 defaultLineLineWidth 确定此属性为线条属性。要指定图窗颜色,使用 defaultFigureColor

set(groot,'defaultFigureColor','b')

在层次结构中什么位置定义默认值

通常应该在根级别定义默认值,从而后续绘图函数都可以使用这些默认值。在 setget 语句中使用 groot 函数指定根对象,此函数会返回根对象的句柄。

您可以在三个级别上定义默认属性值:

  • 根 - 值应用于在当前 MATLAB® 会话中创建的对象

  • 图窗 - 用于将默认值应用到定义默认值的图窗的子对象。

  • 坐标区 - 用于将默认值应用到定义默认值的坐标区的子对象,而且仅当使用低级函数(lightlinepatchrectanglesurfacetextimage 低级形式)时。

例如,只在根级别指定默认图窗颜色。

set(groot,'defaultFigureColor','b')

列出默认值

使用 get 可确定当前在任意给定对象级别设置了哪些默认值:

get(groot,'default')

返回在当前 MATLAB 会话中设置的所有默认值。

将属性设置为当前默认值

指定属性值为 'default' 将会让属性设置为首先遇到的为该属性定义的默认值。例如,这些语句生成绿色曲面 EdgeColor

set(groot,'defaultSurfaceEdgeColor','k')
h = surface(peaks);
set(gcf,'defaultSurfaceEdgeColor','g')
set(h,'EdgeColor','default')

由于曲面的 EdgeColor 的默认值在图窗级别,MATLAB 首先遇到这个值,并使用该值代替根上定义的默认 EdgeColor

删除默认值

指定属性值为 'remove' 会去除用户定义的默认值。语句

set(groot,'defaultSurfaceEdgeColor','remove')

从根移除默认曲面 EdgeColor 定义。

将属性设置为出厂定义值

指定属性值为 'factory' 将会让属性设置为其出厂定义值。例如,这些语句将曲面 hEdgeColor 设置为黑色(其出厂设定),无论您定义的默认定义值为何值:

set(gcf,'defaultSurfaceEdgeColor','g')
h = surface(peaks);
set(h,'EdgeColor','factory')

列出出厂定义属性值

您可以列出出厂值:

  • get(groot,'factory') - 列出所有图形对象的出厂定义属性值

  • get(groot,'factoryObjectType') - 列出特定对象的出厂定义属性值

  • get(groot,'factoryObjectTypePropertyName') - 列出指定属性的出厂定义值。

保留字

将属性值设置为 defaultremovefactory 会得到前面部分所描述的结果。要将属性设置为这些保留字(例如,文本 String 属性设置为保留字 default),在该保留字前加上反斜杠:

h = text('String','\default');