文档

本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

Line 属性

控制图形线条的外观和行为

Line 属性可控制 Line 对象的外观和行为。通过更改属性值,您可以修改线图的某些方面。

从 R2014b 开始,您可以使用圆点表示法查询和设置属性。

p = plot(1:10);
c = p.Color;
p.Color = 'red';

如果您使用的是早期版本,请改用 getset 函数。

线条

全部展开

线型,指定为下表中列出的线型之一。

线型说明表示的线条
'-'实线

'--'虚线

':'点线

'-.'点划线

'none'无线条无线条

线宽,指定为以磅为单位的正值。如果该线条具有标记,则线条宽度也会影响标记边缘。

示例: 0.75

线条颜色,指定为 RGB 三元数或表中列出的颜色选项之一。默认值 [0 0 0] 对应于黑色。

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

选项说明对应的 RGB 三元数
'red''r'红色[1 0 0]
'green''g'绿色[0 1 0]
'blue''b'蓝色[0 0 1]
'yellow''y'黄色[1 1 0]
'magenta''m'品红色[1 0 1]
'cyan''c'青蓝色[0 1 1]
'white''w'白色[1 1 1]
'black''k'黑色[0 0 0]
'none'无颜色不适用

示例: 'blue'

示例: [0 0 1]

线条边角的样式,指定为 'round''miter''chamfer'。下表说明不同值的外观显示。

'round''miter''chamfer'

如果图窗的 Renderer 属性设置为 'opengl' 而不是 'painters''round' 选项的外观显示可能会有所不同。

锐化垂直线和水平线,指定为 'off''on'

如果其关联图窗的 GraphicsSmoothing 属性设置为 'on'Renderer 属性设置为 'opengl',则该图窗会对绘图应用平滑处理技术。在某些情况下,这种平滑处理技术会导致垂直线和水平线出现不均匀的厚度或颜色。使用 AlignVertexCenters 属性可消除不均匀的外观。

  • 'off' - 不锐化垂直线或水平线。线条可能出现不均匀的厚度或颜色。

  • 'on' - 锐化垂直线和水平线以消除外观不均现象。

注意

必须具有支持该功能的图形卡。要查看是否支持该功能,请键入 opengl info。如果支持该功能,则返回的字段包含以下行:SupportsAlignVertexCenters: 1

标记

全部展开

标记符号,指定为下表中列出的值之一。默认情况下,对象不显示标记。指定标记符号可在每个数据点或顶点添加标记。

说明
'o'圆圈
'+'加号
'*'星号
'.'
'x'叉号
'square''s'方形
'diamond''d'菱形
'^'上三角
'v'下三角
'>'右三角
'<'左三角
'pentagram''p'五角星(五角形)
'hexagram''h'六角星(六角形)
'none'无标记

要显示标记的数据点的索引,指定为正整数向量。如果不指定索引,MATLAB® 将在每个数据点显示一个标记。

注意

要查看标记,还必须指定标记符号。

示例: plot(x,y,'-o,'MarkerIndices',[1 5 10]) 在第一、第五和第十个数据点显示一个圆形标记。

示例: plot(x,y,'-x','MarkerIndices',1:3:length(y)) 每隔三个数据点显示一个交叉标记。

示例: plot(x,y,'Marker','square','MarkerIndices',5) 在第五个数据点显示一个正方形标记。

标记大小,指定为以磅为单位的正值。

示例: 10

标记轮廓颜色,指定为 'auto'、RGB 三元数或表中列出的颜色选项之一。默认值 'auto' 使用与 Color 属性相同的颜色。

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

选项说明对应的 RGB 三元数
'red''r'红色[1 0 0]
'green''g'绿色[0 1 0]
'blue''b'蓝色[0 0 1]
'yellow''y'黄色[1 1 0]
'magenta''m'品红色[1 0 1]
'cyan''c'青蓝色[0 1 1]
'white''w'白色[1 1 1]
'black''k'黑色[0 0 0]
'none'无颜色不适用

示例: [0.5 0.5 0.5]

示例: 'blue'

标记填充颜色,指定为 'auto'、RGB 三元数或表中列出的颜色选项之一。'auto' 值使用与坐标区的 Color 属性相同的颜色。

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

选项说明对应的 RGB 三元数
'red''r'红色[1 0 0]
'green''g'绿色[0 1 0]
'blue''b'蓝色[0 0 1]
'yellow''y'黄色[1 1 0]
'magenta''m'品红色[1 0 1]
'cyan''c'青蓝色[0 1 1]
'white''w'白色[1 1 1]
'black''k'黑色[0 0 0]
'none'无颜色不适用

示例: [0.3 0.2 0.1]

示例: 'green'

笛卡尔坐标数据

全部展开

x 值,指定为向量。

  • 对于二维线图,如果不指定 x 值,则 MATLAB 将 YData 的索引用作该绘图的 x 值。XDataYData 的长度必须相同。

  • 对于三维线图,如果不指定 x 值,则 MATLAB 将 ZData 的索引用作该绘图的 x 值。XDataYDataZData 的长度必须相同。

示例: [1:10]

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration

链接到 XData 的变量,指定为包含 MATLAB 工作区变量名称的字符向量或字符串。MATLAB 通过计算基础工作区中的变量来生成 XData

默认情况下,没有链接的变量,因此该值为空字符向量 ''。如果您链接变量,MATLAB 不会立即更新 XData 值。若要强制更新数据值,需要使用 refreshdata 函数。

注意

如果您将一个数据源属性更改为包含不同维度数据的变量,则可能会导致函数生成警告,且在将所有数据源属性更改为适当值之前将无法显示图形。

示例: 'x'

XData 的选择模式,指定为下列值之一:

  • 'auto' - 使用 YData(或 ZData,对于三维绘图)中的值的索引。

  • 'manual' - 使用手动指定的值。要指定这些值,请设置 XData 属性或指定绘图函数的输入参数 X

y 值,指定为向量。对于二维线图,XDataYData 的长度必须相同。对于三维线图,XDataYDataZData 的长度必须相同。

示例: [1:10]

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration

链接到 YData 的变量,指定为包含 MATLAB 工作区变量名称的字符向量或字符串。MATLAB 通过计算基础工作区中的变量来生成 YData

默认情况下,没有链接的变量,因此该值为空字符向量 ''。如果您链接变量,MATLAB 不会立即更新 YData 值。若要强制更新数据值,需要使用 refreshdata 函数。

注意

如果您将一个数据源属性更改为包含不同维度数据的变量,则可能会导致函数生成警告,且在将所有数据源属性更改为适当值之前将无法显示图形。

示例: 'y'

三维线图的 z 值,指定为向量。XDataYDataZData 必须具有相同的长度。

示例: [1:10]

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration

链接到 ZData 的变量,指定为包含 MATLAB 工作区变量名称的字符向量或字符串。MATLAB 通过计算基础工作区中的变量来生成 ZData

默认情况下,没有链接的变量,因此该值为空字符向量 ''。如果您链接变量,MATLAB 不会立即更新 ZData 值。若要强制更新数据值,需要使用 refreshdata 函数。

注意

如果您将一个数据源属性更改为包含不同维度数据的变量,则可能会导致函数生成警告,且在将所有数据源属性更改为适当值之前将无法显示图形。

示例: 'z'

极坐标数据

全部展开

半径值,指定为向量。ThetaDataRData 必须是长度相等的向量。

此属性仅适用于极坐标区中的线条。

链接到 RData 的变量,指定为包含 MATLAB 工作区变量名称的字符向量。MATLAB 通过计算基础工作区中的变量来生成 RData

默认情况下,没有链接的变量,因此该值为空字符向量 ''。如果您链接变量,MATLAB 不会立即更新 RData 值。若要强制更新数据值,需要使用 refreshdata 函数。

注意

如果您将一个数据源属性更改为包含不同维度数据的变量,则可能会导致函数生成警告,且在将所有数据源属性更改为适当值之前将无法显示图形。

此属性仅适用于极坐标区中的线条。

角度值,指定为向量。ThetaDataRData 必须是长度相等的向量。

此属性仅适用于极坐标区中的线条。

链接到 ThetaData 的变量,指定为包含 MATLAB 工作区变量名称的字符向量。MATLAB 通过计算基础工作区中的变量来生成 RData

默认情况下,没有链接的变量,因此该值为空字符向量 ''。如果您链接变量,MATLAB 不会立即更新 ThetaData 值。若要强制更新数据值,需要使用 refreshdata 函数。

注意

如果您将一个数据源属性更改为包含不同维度数据的变量,则可能会导致函数生成警告,且在将所有数据源属性更改为适当值之前将无法显示图形。

此属性仅适用于极坐标区中的线条。

ThetaData 属性值的选择模式,指定为下列值之一:

  • 'auto' - 自动选择值。

  • 'manual' - 使用指定的值。要指定这些值,请设置 ThetaData 属性或指定绘图函数的输入参数 theta

此属性仅适用于极坐标区中的线条。

可见性

全部展开

可见性状态,指定为下列值之一:

  • 'on' - 显示对象。

  • 'off' - 隐藏对象而不删除它。您仍然可以访问不可见对象的属性。

按照坐标区范围裁剪对象,指定为下列值之一:

  • 'on' - 不显示对象超出坐标区范围的部分。

  • 'off' - 显示整个对象,即使对象的某些部分超出坐标区范围。如果您创建一个图、设置 hold on、冻结坐标区缩放,然后创建比原始图更大的对象,则该对象的某些部分可能会显示在坐标区范围之外。

必须将包含该对象的坐标区的 Clipping 属性设置为 'on'。否则,此属性不起作用。有关裁剪行为的详细信息,请参阅坐标区的 Clipping 属性。

注意

EraseMode 已删除。可以在影响最小的情况下删除用于访问 EraseMode 属性的代码。如果要使用 EraseMode 创建线条动画,请改用 animatedline 函数。

用于绘制和擦除对象的方法,指定为下列值之一:

  • 'normal' - 重新绘制显示画面中受影响的区域,并执行必要的三维分析以确保正确呈现所有对象。该模式可以产生最精确的图片,但速度是最慢的。其他模式较快,但不会完整地执行重新绘制,因此不太精确。

  • 'none' - 对象移动或被销毁时不会将其擦除。在使用 EraseMode,'none' 擦除该对象之后,该对象仍在屏幕上可见。但是,由于 MATLAB 不在其先前位置中存储任何信息,因此将无法打印该对象。

  • 'xor' - 通过对屏幕上对象下方的颜色执行异或 (XOR) 来绘制和擦除对象。该模式不会破坏对象下方的颜色。但是,对象的颜色将取决于其屏幕位置下方对象的颜色,而无论其下方是何对象。

  • 'background' - 如果坐标区的 Color 属性是 'none',则通过在坐标区的背景色或图窗背景色中重新绘制对象来将其擦除。这会破坏已擦除对象后面的对象,但会为已擦除对象正确上色。

MATLAB 始终打印图窗,如同所有对象的 EraseMode 属性都设置为 'normal'。这意味着在将 EraseMode 设置为 'none''xor''background' 情况下创建的图形对象在屏幕上的外观可能与纸上外观不同。在屏幕上,MATLAB 以数学方式组合颜色层,并忽略三维排序以获取更快的渲染速度。但是,MATLAB 不会对打印的输出应用这些方法。使用 getframe 命令或其他屏幕捕获应用程序创建包含非常规模式对象的图窗的图像。

标识符

全部展开

此属性为只读

图形对象的类型,以 'line' 形式返回。使用该属性在绘制层次结构中查找指定类型的所有对象,例如,使用 findobj 搜索该类型。

要与对象关联的标记,指定为字符向量或字符串。

可使用此属性在层次结构中查找对象。例如,您可以使用 findobj 函数查找具有特定 Tag 属性值的对象。

示例: 'January Data'

要与对象关联的数据,指定为任何 MATLAB 数据,例如标量、向量、矩阵、元胞数组、字符数组、表或结构体。MATLAB 不使用此数据。

要关联多组数据或将字段名称附加到这些数据,请使用 getappdatasetappdata 函数。

示例: 1:100

图例标签,指定为字符向量或字符串。如果您不指定文本,则图例使用 'dataN' 形式的标签。只有调用 legend 命令之后,才会显示图例。

示例: 'Label Text'

数据类型: char | string

此属性为只读

指定是否在图例中包含对象的控制项,返回 Annotation 对象。将基础 IconDisplayStyle 属性设置为以下值之一:

  • 'on' - 在图例中包含对象(默认值)。

  • 'off' - 不在图例中包含对象。

例如,不在图例中显示针状图。

p = plot(1:10,'DisplayName','Line Chart');
hold on
s = stem(1:10,'DisplayName','Stem Chart');
hold off
s.Annotation.LegendInformation.IconDisplayStyle = 'off';
legend('show')

您也可以使用 legend 函数控制图例中的项目。将第一个输入参数指定要包含的图形对象的向量。

p = plot(1:10,'DisplayName','Line Chart');
hold on
s = stem(1:10,'DisplayName','Stem Chart');
hold off
legend(p)

父级/子级

全部展开

父级,指定为 AxesPolarAxesGroupTransform 对象。

对象没有任何子级。您不能设置该属性。

父级的 Children 属性中对象句柄的可见性,指定为下列值之一:

  • 'on' - 对象句柄始终可见。

  • 'off' - 对象句柄始终不可见。该选项用于防止另一函数无意中对 UI 进行更改。将 HandleVisibility 设置为 'off' 可在执行该函数时暂时隐藏句柄。

  • 'callback' - 对象句柄在回调或回调所调用的函数中可见,但在从命令行调用的函数中不可见。此选项阻止通过命令行访问对象,但允许回调函数访问对象。

如果父级的 Children 属性中未列出该对象,则通过搜索对象层次结构或查询句柄属性获取对象句柄的函数无法返回该对象。这包括 getfindobjgcagcfgconewplotclaclfclose

隐藏的对象句柄仍有效。将根 ShowHiddenHandles 属性设置为 'on' 以列出所有对象句柄,而不管其 HandleVisibility 属性设置如何。

交互式控件

全部展开

鼠标点击回调,指定为下列值之一:

  • 函数句柄

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

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

使用此属性在您点击对象时执行代码。如果使用函数句柄指定此属性,则 MATLAB 在执行回调时将向回调函数传递两个参数:

  • 点击的对象 - 您可以从回调函数中访问点击的对象的属性。

  • 事件数据 - 此参数对于此属性为空。在函数定义中将其替换为波浪号字符 (~) 以指示不使用此参数。

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

注意

如果 PickableParts 属性设置为 'none' 或者 HitTest 属性设置为 'off',则不执行此回调。

上下文菜单,指定为 ContextMenu 对象。使用此属性在您右键点击对象时显示上下文菜单。使用 uicontextmenu 函数创建上下文菜单。

注意

如果 PickableParts 属性设置为 'none' 或者 HitTest 属性设置为 'off',该上下文菜单将不显示。

选择状态,指定为下列值之一:

  • 'on' - 已选择。如果您在绘图编辑模式下点击对象,则 MATLAB 会将其 Selected 属性设置为 'on'。如果 SelectionHighlight 属性也设置为 'on',则 MATLAB 将在对象周围显示选择句柄。

  • 'off' - 未选择。

选定时选择句柄的显示方式,指定为以下值之一:

  • 'on' - 在 Selected 属性设置为 'on' 时显示选择句柄。

  • 'off' - 永远不显示选择句柄,即使 Selected 属性设置为 'on' 也是如此。

回调执行控件

全部展开

捕获鼠标点击的能力,指定为以下值之一:

  • 'visible' - 当线条可见时,可以捕获鼠标点击。Visible 属性必须设置为 'on',而且您必须点击 Line 对象中具有定义颜色的部分。不能点击包含设置为 'none' 的相关颜色属性的部分。如果绘图包含标记,当边缘或填充区具有定义的颜色时,则整个标记都是可点击的。HitTest 属性决定是 Line 对象响应点击还是父级响应点击。

  • 'all' - 无论可见性如何都可以捕获鼠标点击。Visible 属性可以设置为 'on''off',而且您可以点击 Line 对象中没有颜色的部分。HitTest 属性决定是 Line 对象响应点击还是父级响应点击。

  • 'none' - 无法捕获鼠标点击。点击 Line 对象会将点击操作通过它传递给图窗窗口当前视图中该对象下方的对象。HitTest 属性没有任何作用。

响应捕获的鼠标点击,指定为以下值之一:

  • 'on' - 触发 Line 对象的 ButtonDownFcn 回调。如果您已定义 UIContextMenu 属性,则调用上下文菜单。

  • 'off' - 触发满足以下条件的 Line 对象的最近父级的回调:

    • HitTest 属性设置为 'on'

    • PickableParts 属性所设置的值允许父级捕获鼠标点击。

注意

PickableParts 属性决定 Line 对象是否可以捕获鼠标点击。如果无法捕获,则 HitTest 属性没有任何作用。

回调中断,指定为 'on''off'Interruptible 属性确定是否可以中断运行中回调。

注意

有以下两种回调状态要考虑:

  • 运行中回调是当前正在执行的回调。

  • 中断回调是试图中断运行中回调的回调。

无论何时 MATLAB 调用回调,该回调都会试图中断运行中回调。运行中回调所属对象的 Interruptible 属性决定着是否允许中断。如果不允许中断,则中断回调所属对象的属性 BusyAction 将决定是放弃该回调还是将回调放入队列中。

如果 Line 对象的 ButtonDownFcn 回调正在运行,则 Interruptible 属性决定它是否可被其他回调中断:

  • 'on' - 可中断。中断发生在 MATLAB 处理队列的下一个位置,例如当存在 drawnowfiguregetframewaitforpause 命令时。

    • 如果运行中回调包含以上命令之一,则 MATLAB 将在此时停止执行回调并执行中断回调。当中断回调完成时,MATLAB 将恢复执行运行中回调。有关详细信息,请参阅中断回调执行

    • 如果运行中回调不包含以上命令之一,则 MATLAB 执行完当前回调,不会出现任何中断。

  • 'off' - 不可中断。MATLAB 在不发生任何中断的情况一直将运行中回调执行完成。

回调排队,指定为 'queue''cancel'BusyAction 属性决定 MATLAB 如何处理中断回调的执行。

有以下两种回调状态要考虑:

  • 运行中回调是当前正在执行的回调。

  • 中断回调是试图中断运行中回调的回调。

无论何时 MATLAB 调用回调,该回调都会试图中断运行中回调。运行中回调所属对象的 Interruptible 属性决定着是否允许中断。如果不允许中断,则中断回调所属对象的属性 BusyAction 将决定是放弃该回调还是将回调放入队列中。

如果 Line 对象的回调尝试中断正在运行的、不能中断的回调,则由 BusyAction 属性决定是放弃该回调还是将其放入队列中。将 BusyAction 属性指定为下列值之一:

  • 'queue' - 将中断回调放入队列中,以便在运行中回调执行完毕后进行处理。这是默认行为。

  • 'cancel' - 放弃中断回调。

创建控件和删除控件

全部展开

创建回调,指定为下列值之一:

  • 函数句柄

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

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

可以使用此属性在创建对象时执行代码。MATLAB 将在创建对象并设置其所有属性之后执行回调。对已存在的对象设置 CreateFcn 属性没有任何作用。要使 CreateFcn 属性生效,必须在创建对象期间指定该属性。在创建对象期间指定属性值的一种方法是为对象设置默认属性值。有关详细信息,请参阅默认属性值

如果使用函数句柄指定此回调,则 MATLAB 在执行回调时将向回调函数传递两个参数:

  • 创建的对象 - 您可以从回调函数中访问该对象的属性。还可以通过根的 CallbackObject 属性访问该对象,此属性可通过 gcbo 函数进行查询。

  • 事件数据 - 此参数对于此属性为空。在函数定义中将其替换为波浪号字符 (~) 以指示不使用此参数。

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

删除回调,指定为下列值之一:

  • 函数句柄

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

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

使用此属性在删除对象时执行代码。MATLAB 将在销毁该对象之前执行回调,以便回调可以访问其属性值。

如果使用函数句柄指定此回调,则 MATLAB 在执行回调时将向回调函数传递两个参数:

  • 删除的对象 - 您可以从回调函数中访问该对象的属性。还可以通过根的 CallbackObject 属性访问该对象,此属性可通过 gcbo 函数进行查询。

  • 事件数据 - 此参数对于此属性为空。在函数定义中将其替换为波浪号字符 (~) 以指示不使用此参数。

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

此属性为只读

删除状态,返回 'off''on'。当对象的删除函数开始执行时(请参阅 DeleteFcn 属性),MATLAB 会将 BeingDeleted 属性设置为 'on'BeingDeleted 属性将一直保持 'on' 的设置,直到对象不再存在为止。

在查询或修改对象之前,请先检查其 BeingDeleted 属性的值,以确认它不是待删除项。

在 R2006a 之前推出

此主题对您有帮助吗?