Main Content

brush

以交互方式标记图中的数据值

说明

数据刷亮允许您使用自选颜色对图中的数据值进行标记。您可以标记单个数据值,也可以框选多个值进行标记。对值进行标记后,您可以将其删除或保存到工作区中的变量中。即使平移、缩放、添加数据提示或编辑绘图,刷亮标记也会一直保留,直到将其删除为止。

大多数图都支持数据刷亮,包括线图、条形图、面积图、直方图和曲面图。支持刷亮的图通常在坐标区工具栏中显示笔刷 图标。

创建对象

描述

示例

brush on 将在当前图窗中启用刷亮。在启用刷亮状态下,点击一个数据值可对其进行标记。如果要标记多个数据值,可框选这些值。要添加额外的标记或删除不需要的标记,请在刷亮数据值时按住 Shift 键。

brush off 禁用刷亮。如果图上存在刷亮标记,此命令不会将它们删除。

brushonoff 之间切换刷亮模式。

brush(color) 设置后续刷亮标记的颜色。设置刷亮颜色不会影响当前标记,除非您刷亮数据、更改刷亮颜色,然后使用 Shift 键添加或删除标记。在这种情况下,所有标记都会更新为新颜色。

brush(fig,___) 可在上述任一语法的基础上设置指定图窗中所有坐标区的刷亮模式。将附加参数指定为 'on''off' 或刷亮标记颜色。例如,要为图窗 fig 中的所有坐标区启用刷亮模式,请使用 brush(fig,'on')。要设置所有坐标区的刷亮标记颜色,请使用 brush(fig,'green')

brush(ax,___) 可为指定的坐标区设置刷亮模式。例如,要为坐标区 ax 启用刷亮模式,请使用 brush(ax,'on')。要设置坐标区的刷亮标记颜色,请使用 brush(ax,'green')。将此语法用于在 App 设计工具中创建的 App 和使用 uifigure 函数创建的 App。 (自 R2023a 起)

示例

b = brush 为当前图窗创建一个 brush 对象。此语法可用于自定义刷亮模式、颜色和回调属性。

b = brush(fig) 为指定的图窗创建 brush 对象。

输入参数

全部展开

刷亮标记颜色,指定为 RGB 三元组或颜色名称。要创建特定颜色的刷亮标记,请在刷亮数据值之前设置颜色属性。设置刷亮颜色不会影响当前标记,除非您刷亮数据、更改刷亮颜色,然后使用 Shift 键添加或删除标记。在这种情况下,所有标记都会更新为新颜色。

RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]。此外,还可以按名称指定一些常见的颜色。下表列出长和短颜色名称选项以及其对应的 RGB 三元组值。

颜色名称短名称RGB 三元组外观
'red''r'[1 0 0]

Sample of the color red

'green''g'[0 1 0]

Sample of the color green

'blue''b'[0 0 1]

Sample of the color blue

'cyan' 'c'[0 1 1]

Sample of the color cyan

'magenta''m'[1 0 1]

Sample of the color magenta

'yellow''y'[1 1 0]

Sample of the color yellow

'black''k'[0 0 0]

Sample of the color black

'white''w'[1 1 1]

Sample of the color white

以下是 MATLAB® 在许多类型的绘图中使用的默认颜色的 RGB 三元组。

RGB 三元组外观
[0 0.4470 0.7410]

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

目标图窗,指定为 Figure 对象。指定目标图窗将为所有当前或将来的 Axes 子级设置模式。

目标坐标区,指定为 Axes 对象。

属性

全部展开

刷亮标记颜色,指定为 RGB 三元组、十六进制颜色代码、颜色名称或短名称。要创建特定颜色的刷亮标记,请在刷亮数据值之前设置颜色属性。设置刷亮颜色不会影响当前标记,除非您刷亮数据、更改刷亮颜色,然后使用 Shift 键添加或删除标记。在这种情况下,所有标记都会更新为新颜色。

对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。

  • RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]

  • 十六进制颜色代码是字符串标量或字符向量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0F。这些值不区分大小写。因此,颜色代码 "#FF8800""#ff8800""#F80""#f80" 是等效的。

此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。

颜色名称短名称RGB 三元组十六进制颜色代码外观
"red""r"[1 0 0]"#FF0000"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan" "c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

"none"不适用不适用不适用无颜色

以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。

RGB 三元组十六进制颜色代码外观
[0 0.4470 0.7410]"#0072BD"

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]"#D95319"

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]"#EDB120"

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]"#7E2F8E"

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]"#77AC30"

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]"#4DBEEE"

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]"#A2142F"

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

刷亮模式,指定为 'off''on'

刷亮前要执行的函数,指定为下列值之一:

  • 函数句柄

  • 元胞数组,包含一个函数句柄和其他参数

  • 作为有效 MATLAB 命令或函数(在基础工作区中计算)的字符向量(不推荐)

使用此属性在开始刷亮图时执行代码。如果使用函数句柄指定此属性,则 MATLAB 在执行回调时将向回调函数传递两个参数:

  • figure - 您正在刷亮的图窗对象。

  • axesStruct - 包含您正在刷亮的坐标区的结构体。该结构体有一个字段 Axes,即您正在刷亮的坐标区对象。如果在回调函数中不使用此参数,请用波浪号字符 (~) 替换它。

有关如何使用函数句柄定义回调定义的详细信息,请参阅Create Callbacks for Graphics Objects

刷亮后执行的函数,指定为下列值之一:

  • 函数句柄

  • 元胞数组,包含一个函数句柄和其他参数

  • 作为有效 MATLAB 命令或函数(在基础工作区中计算)的字符向量(不推荐)

使用此属性在完成图的刷亮后执行代码。如果使用函数句柄指定此属性,则 MATLAB 在执行回调时将向回调函数传递两个参数:

  • figure - 您正在刷亮的图窗对象。

  • axesStruct - 包含您正在刷亮的坐标区的结构体。该结构体有一个字段 Axes,即您正在刷亮的坐标区对象。如果在回调函数中不使用此参数,请用波浪号字符 (~) 替换它。

有关如何使用函数句柄定义回调定义的详细信息,请参阅Create Callbacks for Graphics Objects

刷亮隐藏回调,指定为下列值之一:

  • 函数句柄

  • 元胞数组,包含一个函数句柄和其他参数

  • 作为有效 MATLAB 命令或函数(在基础工作区中计算)的字符向量(不推荐)

使用此属性可隐藏在您定义的条件下的刷亮。数值或逻辑值输出 1 (true) 表示隐藏刷亮操作,数值或逻辑值输出 0 (false) 表示允许刷亮操作继续。如果使用函数句柄指定此属性,则 MATLAB 在执行回调时将向回调函数传递两个参数:

  • axes - 您要刷亮的坐标区对象。

  • eventData - 空参数。在函数定义中将其替换为波浪号字符 (~) 以指示不使用此参数。

如果使用函数句柄指定此属性,则必须将此函数的输出赋给变量。

有关如何使用函数句柄定义回调定义的详细信息,请参阅Create Callbacks for Graphics Objects

此 属性 为只读。

其中出现刷亮标记的 Figure 对象。

旧模式,指定为 'on''off',或者指定为数值或逻辑值 1 (true) 或 0 (false)。值 'on' 等效于 true'off' 等效于 false。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值。

将此属性设置为 'on' 会更改 UI 图窗中交互模式的行为,使其与传统图窗中模式的行为相匹配。有关详细信息,请参阅 enableLegacyExplorationModes

一旦该属性设置为 'on',它就无法再更改回 'off'

此属性仅应用于使用 uifigure 函数或在 MATLAB Online™ 中创建的图窗的刷亮对象。

示例

全部折叠

在散点图中使用刷亮来标记数据值。首先,绘制随机的 xy 值。然后,打开刷亮,使用鼠标在一些点周围拖动绘制一个矩形。

x = rand(20,1);
y = rand(20,1);
scatter(x,y)
brush('on')

Scatter plot with a rectangle surrounding some points. The surrounded points have a red fill instead of no fill.

要在已标记点集的基础上进行增删,请在刷亮时按住 Shift 键。点击一个点以添加或删除它。要添加或删除多个点,请框选这些点。

Scatter plot with a red rectangle surrounding a different group of points. Points in both groups have a red fill.

通过点击或拖动坐标区的空白区域以清除所有刷亮标记。

在条形图中绘制数据值并创建刷亮对象。然后,通过更新该对象的属性启用刷亮并将刷亮颜色设置为 'green'。最后,框选每个条形的最大值来标记数据值。

y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
bar(y)
b = brush;
b.Enable = 'on';
b.Color = 'green';

Bar chart with a rectangle around the maximum value of some bars. The selected bars have a green fill instead of a blue fill.

使用上下文菜单将刷亮的数据保存在变量中。首先,绘制一些 xy 值。打开刷亮,然后标记一些数据值。

x = linspace(0,5,30);
y = exp(x);
plot(x,y)
brush('on')

Line plot with a rectangle surrounding some points. The line and data values in the rectangle are highlighted in red.

要将刷亮的数据存储在变量中,请右键点击一个刷亮的数据值,并从上下文菜单中选择导出刷亮的。出现提示时,输入变量名称。在本例中,使用名称 bData。最后,查看 bData 的内容。

bData
bData =

    3.2759   26.4660
    3.4483   31.4461
    3.6207   37.3633
    3.7931   44.3940
    3.9655   52.7475
    4.1379   62.6730
    4.3103   74.4662
    4.4828   88.4784
    4.6552  105.1273

通过使用上下文菜单从图中删除刷亮的数据。首先,绘制一些 xy 值。打开刷亮,然后标记一些数据值。

x = linspace(0,5,30);
y = exp(x);
scatter(x,y)
brush('on')

Scatter plot with a rectangle surrounding some points. The selected points have a red fill instead of no fill.

要从图中删除刷亮的数据,请右键点击刷亮的数据值,并从上下文菜单中选择删除

Updated scatter plot. The selected points are gone.

局限性

对于使用 uifigure 函数创建的图窗,不支持使用上下文菜单更改刷亮标记的颜色。应改为创建一个刷亮模式对象,并以编程方式更改其颜色。

uif = uifigure;
ax = axes(uif);
bar(ax,1:10)
b = brush(uif);
b.Color = 'g';
b.Enable = 'on';

详细信息

全部展开

提示

  • 要刷亮直方图,必须首先启用数据链接。

替代功能

坐标区工具栏

对于某些图,通过点击坐标区工具栏中的笔刷 图标来启用刷亮模式。

版本历史记录

在 R2008a 中推出

全部展开