目录
属性预定义值
几乎所有图形对象都有预定义值。预定义值有两个可能的来源:
-
在对象父级中定义的默认值
-
在图形对象层次结构的根级定义的出厂值
用户可以为对象属性创建默认值,且它的优先级比出厂定义值高。以下情形,对象使用默认值:
-
在父级定义默认值的层次结构中创建
-
在父级定义默认值的层次结构中作为父对象
指定默认值
使用包含以下三部分的字符向量定义默认属性值:
'default' ObjectType PropertyName
-
default 单词
-
对象类型(例如,Line)
-
属性名(例如,LineWidth)
指定默认线条 LineWidth 的字符向量如下所示:
'defaultLineLineWidth'
使用此字符向量指定默认值。例如,要将线条 LineWidth 属性指定为 2 磅,使用以下语句:
set(groot,'defaultLineLineWidth',2)
字符向量 defaultLineLineWidth 确定此属性为线条属性。要指定图窗颜色,使用 defaultFigureColor:
set(groot,'defaultFigureColor','b')
在层次结构中什么位置定义默认值
通常应该在根级别定义默认值,从而后续绘图函数都可以使用这些默认值。在 set 和 get 语句中使用 groot 函数指定根对象,此函数会返回根对象的句柄。
可以在三个级别上定义默认属性值:
-
根 - 值应用于在当前 MATLAB® 会话中创建的对象
-
图窗 - 用于将默认值应用到定义默认值的图窗的子对象。
-
坐标区 - 用于将默认值应用到定义默认值的坐标区的子对象,而且仅当使用低级函数(light、line、patch、rectangle、surface、text 和 image 低级形式)时。
例如,只在根级别指定默认图窗颜色。
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' 将会让属性设置为其出厂定义值。例如,这些语句将曲面 h 的 EdgeColor 设置为黑色(其出厂设定),无论您定义的默认定义值为何值:
set(gcf,'defaultSurfaceEdgeColor','g')
h = surface(peaks);
set(h,'EdgeColor','factory')
列出出厂定义属性值
可以列出出厂值:
-
get(groot,'factory') - 列出所有图形对象的出厂定义属性值
-
get(groot,'factoryObjectType') - 列出特定对象的出厂定义属性值
-
get(groot,'factoryObjectTypePropertyName') - 列出指定属性的出厂定义值。
保留字
将属性值设置为 default、remove 或 factory 会得到前面部分所描述的结果。要将属性设置为这些保留字(例如,文本 String 属性设置为保留字 default),在该保留字前加上反斜杠:
h = text('String','\default');