主要内容

默认属性值

属性预定义值

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

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

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

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

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

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

指定默认值

将默认属性值定义为包含以下三个部分的字符串:

"default" ObjectType PropertyName
  • default 单词

  • 对象类型(例如,Line

  • 属性名(例如,LineWidth

指定默认行 LineWidth 的字符串将是:

"defaultLineLineWidth"

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

set(groot,"defaultLineLineWidth",2)

您也可以使用 Name=Value 语法并省略引号。

set(groot,defaultLineLineWidth=2)

字符串 defaultLineLineWidth 将属性标识为行属性。要指定图窗颜色,使用 defaultFigureColor

set(groot,defaultFigureColor="blue")

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

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

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

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

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

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

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

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" 将会让属性设置为其出厂定义值。例如,这些语句将曲面 hEdgeColor 设置为黑色(其出厂设定),无论您定义的默认定义值为何值:

set(gcf,defaultSurfaceEdgeColor="green")
h = surface(peaks);
set(h,EdgeColor="factory")

列出出厂定义属性值

您可以列出出厂值:

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

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

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

保留字

将属性值设置为 defaultremovefactory 会得到前面部分所描述的结果。要将属性设置为这些保留字(例如,文本 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

另请参阅

属性

对象