默认属性值
属性预定义值
几乎所有图形对象都有预定义值。预定义值有两个可能的来源:
在对象前代中定义的默认值
在图形对象层次结构的根级定义的出厂值
用户可以为对象属性创建默认值,且它的优先级比出厂定义值高。以下情形,对象使用默认值:
在前代定义默认值的层次结构中创建
在前代定义默认值的层次结构中作为父对象
指定默认值
将默认属性值定义为包含以下三个部分的字符串:
"default" ObjectType PropertyNamedefault单词对象类型(例如,
Line)属性名(例如,
LineWidth)
指定默认行 LineWidth 的字符串将是:
"defaultLineLineWidth"使用此字符串指定默认值。例如,要将线条 LineWidth 属性指定为 2 磅,使用以下语句:
set(groot,"defaultLineLineWidth",2)
您也可以使用 Name=Value 语法并省略引号。
set(groot,defaultLineLineWidth=2)
字符串 defaultLineLineWidth 将属性标识为行属性。要指定图窗颜色,使用 defaultFigureColor:
set(groot,defaultFigureColor="blue")在层次结构中什么位置定义默认值
通常应该在根级别定义默认值,从而后续绘图函数都可以使用这些默认值。在 set 和 get 语句中使用 groot 函数指定根对象,此函数会返回根对象的句柄。
您可以在三个级别上定义默认属性值:
例如,只在根级别指定默认图窗颜色。
set(groot,defaultFigureColor="blue")
列出默认值
使用 get 可确定当前在任意给定对象级别设置了哪些默认值。以下命令返回在当前 MATLAB 会话中设置的所有默认值。
get(groot,"default")
将属性设置为当前默认值
指定属性值为 "default" 将会让属性设置为首先遇到的为该属性定义的默认值。例如,这些语句生成绿色曲面 EdgeColor:
set(groot,defaultSurfaceEdgeColor="black") h = surface(peaks); set(gcf,defaultSurfaceEdgeColor="g") set(h,EdgeColor="default")
由于曲面的 EdgeColor 的默认值在图窗级别,MATLAB 首先遇到这个值,并使用该值代替根上定义的默认 EdgeColor。
删除默认值
指定属性值为 "remove" 会去除用户定义的默认值。以下命令从根移除默认曲面 EdgeColor 的定义。
set(groot,defaultSurfaceEdgeColor="remove")将属性设置为出厂定义值
指定属性值为 "factory" 将会让属性设置为其出厂定义值。例如,这些语句将曲面 h 的 EdgeColor 设置为黑色(其出厂设定),无论您定义的默认定义值为何值:
set(gcf,defaultSurfaceEdgeColor="green") h = surface(peaks); set(h,EdgeColor="factory")
列出出厂定义属性值
您可以列出出厂值:
get(groot,"factory")- 列出所有图形对象的出厂定义属性值get(groot,"factory- 列出特定对象的所有出厂定义属性值ObjectType")get(groot,"factory- 列出指定属性的出厂定义值。ObjectTypePropertyName")
保留字
将属性值设置为 default、remove 或 factory 会得到前面部分所描述的结果。要将属性设置为这些保留字(例如,文本 String 属性设置为保留字 default),在该保留字前加上反斜杠:
h = text(String="\default");
图窗主题对默认值的影响
自 R2025a 起
许多默认颜色属性值和一些默认透明度属性值会根据主题而变化。例如,浅色主题中的默认 Text 对象颜色是深灰色。
f = figure(Theme="light"); get(f,"DefaultTextColor")
ans =
0.1294 0.1294 0.1294如果您更改图窗的主题,默认颜色会变为更浅的灰色。
f.Theme = "dark"; get(f,"DefaultTextColor")
ans =
0.8510 0.8510 0.8510然而,出厂默认值取决于默认图窗主题,无论当前图窗的主题是什么。例如,如果图窗的默认主题是 "light",则出厂默认文本颜色是深色。
get(f,"FactoryTextColor")ans =
0.1294 0.1294 0.1294
注意
您无法使用默认语法设置或获取图窗主题的默认值。请改用 MATLAB 的“设置”窗口。在 MATLAB 桌面的主页选项卡上,在环境部分中,点击设置并选择 MATLAB > 外观。然后从图窗主题菜单中选择一个项。
如果您指定属性的默认值,则即使您更改图窗的主题,默认值也保持不变。例如,将默认 Text 对象颜色设置为 [1 0 0](红色)。
set(f,"DefaultTextColor",[1 0 0]) get(f,"DefaultTextColor")
ans =
1 0 0更改图窗的主题并再次获取默认文本颜色。值仍是红色。
f.Theme = "light"; get(f,"DefaultTextColor")
ans =
1 0 0