Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

Patch 属性

补片的外观和行为

Patch 属性控制 Patch 对象的外观和行为。通过更改属性值,您可以修改该补片的特定方面。使用圆点表示法查询和设置属性。

p = patch;
c = p.CData;
p.CDataMapping = 'scaled';

颜色

全部展开

面颜色,指定为 'interp''flat'、RGB 三元组、十六进制颜色代码、颜色名称或短名称。

要为每个面创建不同颜色,请将 CDataFaceVertexCData 属性指定为一个数组,其中每个面对应一种颜色,或者每个顶点对应一种颜色。颜色可以基于每个面的顶点颜色通过插值来计算,也可以是统一颜色。对于插补颜色,请将此属性指定为 'interp'。对于统一颜色,请将此属性指定为 'flat'。如果您指定 'flat' 并为每个顶点指定不同颜色,则您指定的第一个顶点的颜色将决定面颜色。

要为所有面指定单一颜色,请将此属性指定为 RGB 三元组、十六进制颜色代码、颜色名称或短名称。

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

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

颜色名称短名称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

边颜色,指定为下表中的值之一。默认边颜色为黑色,值为 [0 0 0]。如果多个多边形共用一条边,则最先绘制的多边形将控制显示的边颜色。

描述结果

RGB 三元组、十六进制颜色代码或颜色名称

所有边使用一种颜色。如需更多详细信息,请参阅下表。

Rectangular patch with red edges

'flat'

每条边使用不同颜色。使用顶点颜色设置该顶点之后的边的颜色。您必须先将 CDataFaceVertexCData 指定为一个数组,其中一个顶点对应一种颜色。边颜色取决于您指定顶点的顺序。

Rectangular patch with a medium green upper-right vertex, a medium green top edge, a yellow upper-left vertex, a yellow left edge, a dark blue lower-left vertex, a dark blue lower edge, a light blue lower-right vertex, and a light blue right edge

'interp'

插入的边颜色。您必须先将 CDataFaceVertexCData 指定为一个数组,其中一个顶点对应一种颜色。通过在两个边界顶点上进行线性插值来确定边颜色。

Rectangular patch with interpolated edge colors. The top two vertices are medium green and yellow, respectively. The bottom two vertices are dark blue and light blue, respectively. The color of each edge is a gradient of the colors at the bounding vertices.

'none'不显示边。

不显示边。

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

以下是 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

补片颜色数据,为整个补片指定一种颜色、每个面一种颜色,或每个顶点一种颜色。

patch 函数解释 CData 的方式取决于所提供的数据类型。按照以下格式之一指定 CData

  • 要进行标度转换以便以线性方式映射到当前颜色图的数值。

  • 直接用作当前颜色图中的索引的整数值。

  • 由 RGB 三元组组成的数组。RGB 三元组不映射到当前颜色图,而是解释为所定义的颜色。

下图说明了 CDataXDataYDataZData 属性中的数组相关的维度。

这些图说明索引颜色的使用。

Relationship between CData as index numbers and XData, YData, and ZData of the patch. To set a single color for the patch, specify CData as a scalar index. To set one color per face, specify CData as a vector of indices. To set one color per vertex, specify CData as a matrix of indices.

这些图说明真彩色的使用。真彩色需要一个 RGB 三元组或一个 RGB 三元组数组。

Relationship between CData as RGB values and XData, YData, and ZData of the patch. Specify RGB triplets along the third dimension of a 3-D array. To set a single color for the patch, specify CData as a 1-by-1-by-3 array. To set one color for each of n faces, specify CData as 1-by-n-by-3 array. To set one color per vertex, specify CData as m-by-n-by-3 array, where m and n are the number of rows and columns of x, respectively.

如果 CData 包含 NaN,则 patch 不对面着色。

定义补片的替代方法是使用 FacesVerticesFaceVertexCData 属性。

示例: [1,0,0]

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

控制如何设置 CData 属性,指定为下列值之一:

  • "auto" - MATLAB 通过使用 Patch 对象的 SeiesIndex 属性和坐标区的 ColorOrder 属性来控制 CData 属性的值。

  • "manual" - 您可以直接控制 CData 属性的值,或在创建 Patch 对象时将其作为函数参量间接进行控制。

如果您手动更改 CData 属性的值,MATLAB 会将 CDataMode 属性的值更改为 "manual"

自 R2023b 起

序列索引,指定为正整数或 "none"。此属性对于匹配图形对象(如文本、绘图线条或其他 Patch 对象)的颜色非常有用。

SeriesIndex 值为数字时,MATLAB 使用该数字来计算索引,以便在调用绘图函数时自动分配颜色。索引引用存储在坐标区的 ColorOrder 属性中的数组的行。坐标区中具有相同 SeriesIndex 数字的任何对象都具有相同的颜色。

SeriesIndex"none" 对应于不参与索引方案的中性颜色。

手动颜色分配如何覆盖 SeriesIndex 行为

手动控制补片面颜色的一种方式是将 Patch 对象的 FaceColor 属性设置为 "flat",然后将 CData(或 FaceVertexCData)属性设置为颜色值。CData 属性存储使用笛卡尔坐标数据 (x, y, z) 创建的补片的颜色值,FaceVertexCData 属性存储使用面-顶点数据创建的补片的颜色值。这些属性是同步的。如果更改一个属性的值,另一个属性会更新以匹配新值。

手动控制补片边颜色的工作方式与此相同。您将 EdgeColor 属性设置为 "flat",然后将 CData(或 FaceVertexCData)属性设置为颜色值。

当您手动设置 Patch 对象的颜色时,MATLAB 会禁用该对象的自动颜色选择,并允许您的颜色保持不变,而不管 SeriesIndex 属性的值如何。模式属性 CDataModeFaceVertexCDataMode 指示颜色是由您手动设置的还是自动设置的。值 "manual" 表示手动选择,值 "auto" 表示自动选择。这些模式属性也是同步的。当一个模式属性更改时,另一个属性会更改为相同的值。

当您执行以下任一操作时,自动颜色选择将处于禁用状态:

  • 手动将 CDataFaceVertexCData 设置为颜色值。

  • FaceColorEdgeColor 设置为 "flat" 以外的值。

要再次启用自动选择,请将 FaceColorEdgeColor 或这两个属性都设置为 "flat"。将 CDataMode(或 FaceVertexCDataMode)属性设置为 "auto",并将 SeriesIndex 属性设置为正整数。

在某些情况下,MATLAB 会将 SeriesIndex 属性设置为 0,这也会禁用自动颜色选择。

面和顶点的颜色,为整个补片指定一种颜色、每个面一种颜色,或为每个顶点指定一种颜色以计算插补面颜色。

如果要使用索引颜色,请使用以下格式之一指定 FaceVertexCData

  • 要对整个补片使用一种颜色,可使用单个值。

  • 要对每个面使用一种颜色,可使用 m×1 列向量,其中 m 是 Faces 属性中的行数。

  • 对于插补面颜色,请使用 m×1 列向量,其中 m 是 Vertices 属性中的行数。

如果要使用真彩色,请使用以下格式之一指定 FaceVertexCData

  • 要对所有面使用一种颜色,请指定用于定义一个 RGB 三元组的三元素行向量。执行此操作时,还必须将 FaceColor 设置为 'flat',将 EdgeColor 设置为 'flat''interp' 以外的值。

  • 要对每个面使用一种颜色,可使用由 RGB 三元组组成的 m×3 数组,其中 m 是 Faces 属性中的行数。

  • 对于插补面颜色,请使用 m×3 数组,其中 m 是 Vertices 属性中的行数。

下图说明了 FaceVertexCData 属性的各种形式,适用于具有八个面和九个顶点的补片。CDataMapping 属性确定当您指定索引颜色时 MATLAB 解释 FaceVertexCData 属性的方式。

Different forms of the FaceVertexCData property, used to set a single color for the patch, one color per face, or one color per vertex, depending on whether you specify indexed or true-color values

控制如何设置 FaceVertexCData 属性,指定为下列值之一:

  • "auto" - MATLAB 通过使用 Patch 对象的 SeiesIndex 属性和坐标区的 ColorOrder 属性来控制 FaceVertexCData 属性的值。

  • "manual" - 您可以直接控制 FaceVertexCData 属性的值,或在创建 Patch 对象时将其作为函数参量间接进行控制。

如果您手动更改 FaceVertexCData 属性的值,MATLAB 会将 FaceVertexCDataMode 属性的值更改为 "manual"

直接或缩放颜色数据映射,指定为 'scaled'(默认值)或 'direct'CDataFaceVertexCData 属性包含颜色数据。如果您对 CDataFaceVertexCData 使用真彩色规定,则此属性没有任何作用。

  • 'direct' - 将值解释为当前颜色图中的索引。带小数部分的值舍取为最接近的整数。

    • 如果值为 doublesingle 类型,则小于或等于 1 的值将映射到颜色图中的第一个颜色。大于或等于颜色图长度的值将映射到颜色图中的最后一种颜色。

    • 如果值为 uint8uint16uint32uint64int8int16int32int64 类型,则小于或等于 0 的值将映射到颜色图中的第一个颜色。大于或等于颜色图长度的值将映射到颜色图中的最后一种颜色(或者最大可为该类型的范围限值)。

    • 如果值为 logical 类型,则值 0 将映射到颜色图中的第一个颜色,值 1 将映射到颜色图中的第二个颜色。

  • 'scaled' - 缩放值以使其跨度覆盖颜色范围。坐标区的 CLim 属性包含颜色范围。

透明度

全部展开

面透明度,指定为下列值之一:

  • 范围 [0,1] 中的标量 - 在所有面上使用统一的透明度。值为 1 时完全不透明,值为 0 时完全透明。此选项不会使用 FaceVertexAlphaData 属性中的透明度值。

  • 'flat' - 根据 FaceVertexAlphaData 属性中的值,对每个面使用不同的透明度。首先,您必须将 FaceVertexAlphaData 属性指定为向量,其中一个面或一个顶点对应一个透明度值。第一个顶点的透明度值确定整个面的透明度。

  • 'interp' - 根据 FaceVertexAlphaData 属性中的值,对每个面使用插值透明度。首先,您必须将 FaceVertexAlphaData 属性指定为一个向量,其中一个顶点对应一个透明度值。通过基于各顶点处透明度数值进行插值,每个面上的透明度会渐变。

边线条透明度,指定为下列值之一:

  • [0,1] 范围内的标量值 - 在所有边上使用统一的透明度。值为 1 时完全不透明,值为 0 时完全透明。此选项不会使用 FaceVertexAlphaData 属性中的透明度值。

  • 'flat' - 根据 FaceVertexAlphaData 属性中的值,对每个边使用不同透明度。首先,您必须将 FaceVertexAlphaData 属性指定为向量,其中一个面或一个顶点对应一个透明度值。第一个顶点上的透明度值确定边的透明度。

  • 'interp' - 根据 FaceVertexAlphaData 属性中的值,对每个边使用插值透明度。首先,您必须将 FaceVertexAlphaData 属性指定为一个向量,其中一个顶点对应一个透明度值。通过在各顶点上进行插值,使每条边上的透明度有所变化。

面和顶点的透明度值,指定为标量、所含值对应各个面(一个值对应一个面)的向量或所含值对应各个顶点(一个值对应一个顶点)的向量。

  • 要在所有面或边上实现统一透明度,请指定一个标量值。然后将 FaceAlphaEdgeAlpha 属性设置为 'flat'

  • 要在每个面或边上实现不同透明度,请指定 m×1 向量,其中 m 是面数。然后将 FaceAlphaEdgeAlpha 属性设置为 'flat'。要确定面数,请在 Faces 属性中查询行数。

  • 要在每个面或边上实现插值透明度,请指定 n×1 向量,其中 n 是顶点数。然后将 FaceAlphaEdgeAlpha 属性设置为 'interp'。要确定顶点数,请在 Vertices 属性中查询行数。

AlphaDataMapping 属性确定补片解释 FaceVertexAlphaData 属性值的方式。

注意

如果 FaceAlphaEdgeAlpha 属性均设置为标量值,则补片不使用 FaceVertexAlphaData 值。

FaceVertexAlphaData 值的解释,指定为下列值之一:

  • 'none' - 将值解释为透明度值。值 1 或更大的值表示完全不透明,值 0 或更小的值表示完全透明,介于 0 和 1 之间的值表示半透明。

  • 'scaled' - 将值映射到图窗的 alphamap 中。坐标区的最小和最大 alpha 范围确定分别映射到 alphamap 中第一个和最后一个元素的 alpha 数据值。例如,如果 alpha 范围是 [3 5],则小于或等于 3 的 alpha 数据值映射到 alphamap 中的第一个元素。大于或等于 5 的 alpha 数据值映射到颜色图中的最后一个元素。坐标区的 ALim 属性包含 alpha 范围。图窗的 Alphamap 属性包含 alphamap。

  • 'direct' - 将值解释为图窗的 alphamap 的索引。带小数部分的值舍取为最接近的整数。

    • 如果值为 doublesingle 类型,则小于或等于 1 的值将映射到 alphamap 中的第一个元素。等于或大于 alphamap 的长度的值映射到 alphamap 中的最后一个元素。

    • 如果值为整数类型,则小于或等于 0 的值将映射到 alphamap 中的第一个元素。等于或大于 alphamap 的长度的值映射到 alphamap 中的最后一个元素(或者最大可为该类型的范围限值)。整数类型有 uint8uint16uint32uint64int8int16int32int64

    • 如果值为 logical 类型,则值 0 将映射到 alphamap 中的第一个元素,值 1 将映射到 alphamap 中的第二个元素。

线型

全部展开

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

线型描述表示的线条
"-"实线

Sample of solid line

"--"虚线

Sample of dashed line

":"点线

Sample of dotted line

"-."点划线

Sample of dash-dotted line, with alternating dashes and dots

"none"无线条无线条

线宽,指定为以磅为单位的正值,其中 1 磅 = 1/72 英寸。如果该线条具有标记,则线条宽度也会影响标记边。

线宽不能小于像素的宽度。如果将线宽设置为小于系统上像素宽度的值,则线条显示为一个像素的宽度。

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

'round''miter''chamfer'

Sample of a round corner

Sample of a miter corner

Sample of a chamfer corner

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

锐化垂直线和水平线,指定为 'on''off',或指定为数值或逻辑值 1 (true) 或 0 (false)。值 'on' 等效于 true,'off' 等效于 false。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值。

描述外观
'on'

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

Four vertical lines that are sharp

'off'

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

Four vertical lines that are uneven in thickness. Some of the lines are blurry.

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

注意

必须具有支持该功能的图形卡。要了解是否支持该功能,请调用 rendererinfo 函数。如果支持,则 rendererinfoinfo.Details.SupportsAlignVertexCenters 返回值 1

标记

全部展开

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

标记描述生成的标记
"o"圆圈

Sample of circle marker

"+"加号

Sample of plus sign marker

"*"星号

Sample of asterisk marker

"."

Sample of point marker

"x"叉号

Sample of cross marker

"_"水平线条

Sample of horizontal line marker

"|"垂直线条

Sample of vertical line marker

"square"方形

Sample of square marker

"diamond"菱形

Sample of diamond marker

"^"上三角

Sample of upward-pointing triangle marker

"v"下三角

Sample of downward-pointing triangle marker

">"右三角

Sample of right-pointing triangle marker

"<"左三角

Sample of left-pointing triangle marker

"pentagram"五角形

Sample of pentagram marker

"hexagram"六角形

Sample of hexagram marker

"none"无标记不适用

标记大小,指定为以磅为单位的正值,其中 1 磅 = 1/72 英寸。

标记轮廓颜色,指定为 'auto''flat'、RGB 三元组、十六进制颜色代码、颜色名称或短名称。'auto' 选项使用与 EdgeColor 属性相同的颜色。'flat' 选项使用顶点处的 CData 值设置颜色。

对于自定义颜色,请指定 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

标记填充颜色,指定为 'auto''flat'、RGB 三元组、十六进制颜色代码、颜色名称或短名称。'auto' 选项使用与坐标区的 Color 属性相同的颜色。'flat' 选项使用顶点处的 CData 值设置颜色。

对于自定义颜色,请指定 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

此属性仅影响圆形、方形、菱形、五角形、六角形和四个三角形标记类型。

示例: [0.3 0.2 0.1]

示例: 'green'

示例: '#D2F9A7'

数据

全部展开

定义每个面的顶点连接,指定为一个向量或矩阵,后者定义 Vertices 属性中要连接以构成每个面的顶点。FacesVertices 属性提供了指定补片的备选方法,在大多数情况下比使用 XDataYDataZData 坐标效率更高。

面数组中的每一行指定一个面的连接,且该行中不是 NaN 的元素数目定义该面的顶点数目。因此,m×n Faces 数组定义 m 个面,每个面最多 n 个顶点。

例如,假设有以下补片。它由九个顶点所定义的八个三角形面组成。对应的 FacesVertices 属性显示在补片的右侧。请注意观察部分面是如何与其他面共用顶点的。例如,第五个顶点 (V5) 使用了六次,第一、第二、第三、第六、第七和第八个面各使用一次。如不共用顶点,则该补片需要定义 24 个顶点。

Patch with eight faces and nine vertices with corresponding Faces and Vertices properties

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

顶点坐标,指定为一个向量或矩阵,后者定义每个顶点的 (x,y,z) 坐标。FacesVertices 属性提供了指定补片的备选方法,在大多数情况下比使用 XDataYDataZData 坐标效率更高。有关如何使用顶点数据的说明,请参阅 Faces 属性。

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

补片顶点的 x 坐标,指定为向量或矩阵。如果 XData 是矩阵,则每一列代表补片中一个面的 x 坐标。在这种情况下,XDataYDataZData 必须具有相同的维度。

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

定义补片的 y 坐标,指定为向量或矩阵。如果 YData 是矩阵,则每一列代表补片中一个面的 y 坐标。在这种情况下,XDataYDataZData 必须具有相同的维度。

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

补片顶点的 z 坐标,指定为向量或矩阵。如果 ZData 是矩阵,则每一列代表补片中一个面的 z 坐标。在这种情况下,XDataYDataZData 必须具有相同的维度。

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

法线

全部展开

顶点法向量,指定为法向量数组,每个补片顶点一个法向量。为每个补片顶点定义一个法向量,该法向量由 Vertices 属性值的大小确定。顶点法向量确定补片的形状和方向。这些数据用于进行光照计算。

为此属性指定值会将关联的模式设置为手动模式。如果未指定法向量,则当坐标区包含光源对象时补片会生成该数据。

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

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

  • 'auto' - patch 函数在您向场景中添加光源时计算顶点法向量。

  • 'manual' - 使用 VertexNormals 属性指定的顶点法向量数据。为 VertexNormals 属性赋值时会将 VertexNormalsMode 设置为 'manual'

面向法向量,指定为法向量数组,每个补片面一个法向量。为每个补片面定义一个法向量,该法向量由 Faces 属性值的大小确定。面法向量确定每个填充面的方向。这些数据用于进行光照计算。

为此属性指定值会将关联的模式设置为手动模式。如果未指定法向量,则当坐标区包含光源对象时补片会生成该数据。该补片使用 Newell 方法计算面法向量。

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

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

  • 'auto' - patch 函数在您向场景中添加光源时计算面法向量。

  • 'manual' - 使用 FaceNormals 属性指定的面法向量数据。为 FaceNormals 属性赋值时会将 FaceNormalsMode 设置为 'manual'

光照

全部展开

光源对象对面的影响,指定为下列值之一:

  • 'flat' - 将光源均匀地应用于每个面上。使用此值可查看分面着色对象。

  • 'gouraud' - 改变各个面的光源。计算顶点处的光照,然后以在各个面中进行光照插值。使用此值可查看曲面。

  • 'none' - 不将来自光源对象的光源应用于各个面。

要向坐标区中添加光对象,请使用 light 函数。

注意

'phong' 值已被删除。请改用 'gouraud'

顶点法向量远离相机时的面光照,指定为以下值之一:

  • 'reverselit' - 照亮该面,好像顶点法向量指向相机一样。

  • 'unlit' - 不照亮该面。

  • 'lit' - 根据顶点法向量照亮该面。

使用此属性区别对象的内部曲面和外部曲面。有关示例,请参阅背面光照

光源对象对边缘的影响,指定为下列值之一:

  • 'flat' - 将光源均匀地应用于每个边缘上。

  • 'none' - 不将来自光源对象的光源应用于各个边。

  • 'gouraud' - 计算顶点处的光源,然后以线性方式插入各个边缘中。

注意

'phong' 值已被删除。请改用 'gouraud'

环境光的强度,指定为范围 [0,1] 中的标量值。环境光是照亮整个场景的无方向性光源。在坐标区上必须至少有一个可见光对象才能使环境光成为可见的。

坐标区的 AmbientLightColor 属性设置环境光的颜色。坐标区中所有对象的颜色相同。

示例: 0.5

数据类型: double

散射光的强度,指定为范围 [0,1] 中的标量值。漫射光是来自坐标区中光源对象的非镜面反射光。

示例: 0.3

数据类型: double

镜面反射的强度,指定为范围 [0,1] 中的标量值。镜面反射是坐标区中光源对象射入曲面图形成的明亮点。

示例: 0.3

数据类型: double

镜面反射的扩展性,指定为大于 0 的标量值。SpecularExponent 控制镜面反射点的大小。值越大,则产生的镜面反射越少。

大多数材料具有介于范围 520 内的指数。

示例: 17

数据类型: double

镜面反射的颜色,指定为介于 01(包括二者)之间的标量。

  • 0 - 镜面反射的颜色取决于从其反射光的对象的颜色和光源的颜色。

  • 1 - 镜面反射的颜色仅取决于光源的颜色(即光对象的 Color 属性)。

从光源颜色和补片颜色到镜面反射颜色的贡献量随 01 之间值的不同而以线性方式变化。

示例: 0.5

数据类型: single | double

图例

全部展开

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

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

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

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

例如,要从图例中排除名为 objPatch 对象,请将 IconDisplayStyle 属性设置为 "off"

obj.Annotation.LegendInformation.IconDisplayStyle = "off";

您也可以使用 legend 函数控制图例中的项目。将第一个输入参量指定为要包含的图形对象的向量。如果未在第一个输入参量中指定现有图形对象,则该图形对象不会显示在图例中。但在创建图例后添加到坐标区的图形对象会显示在图例中。请考虑在创建所有绘图后创建图例以避免出现额外的项。

交互性

全部展开

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

  • "on" - 显示对象。

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

数据提示内容,指定为 DataTipTemplate 对象。您可以通过修改底层 DataTipTemplate 对象的属性来控制数据提示中显示的内容。有关属性列表,请参阅 DataTipTemplate 属性

有关修改数据提示的示例,请参阅创建自定义数据提示

此属性仅适用于具有固定数据提示的补片。

注意

findobjfindall 不返回 DataTipTemplate 对象,copyobj 也不复制该对象。

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

注意

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

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

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

  • 'off' - 未选择。

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

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

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

按照坐标区范围裁剪对象,指定为 'on''off',或者指定为数值或逻辑值 1 (true) 或 0 (false)。值 'on' 等效于 true,'off' 等效于 false。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值。

  • 值为 'on' 会裁剪对象超出坐标区范围的部分。

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

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

回调

全部展开

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

  • 函数句柄

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

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

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

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

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

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

注意

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

对象创建函数,指定为下列值之一:

  • 函数句柄。

  • 第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参量。

  • 包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。

有关将回调指定为函数句柄、元胞数组或字符向量的详细信息,请参阅Create Callbacks for Graphics Objects

此属性指定要在 MATLAB 创建对象时执行的回调函数。MATLAB 将在执行 CreateFcn 回调之前初始化所有属性值。如果不指定 CreateFcn 属性,则 MATLAB 执行默认的创建函数。

对现有组件设置 CreateFcn 属性没有任何作用。

如果将此属性指定为函数句柄或元胞数组,则可以使用回调函数的第一个参量访问正在创建的对象。否则,使用 gcbo 函数访问该对象。

对象删除函数,指定为下列值之一:

  • 函数句柄。

  • 第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参量。

  • 包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。

有关将回调指定为函数句柄、元胞数组或字符向量的详细信息,请参阅Create Callbacks for Graphics Objects

此属性指定在 MATLAB 删除对象时要执行的回调函数。MATLAB 在销毁对象的属性之前执行 DeleteFcn 回调。如果不指定 DeleteFcn 属性,则 MATLAB 执行默认的删除函数。

如果将此属性指定为函数句柄或元胞数组,则可以使用回调函数的第一个参量访问要删除的对象。否则,使用 gcbo 函数访问该对象。

回调执行控件

全部展开

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

此属性确定是否可以中断运行中回调。有以下两种回调状态要考虑:

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

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

每次执行处理回调队列的命令时,MATLAB 都会确定回调中断行为。这些命令包括 drawnowfigureuifiguregetframewaitforpause

如果运行中回调不包含上述命令之一,则不会发生中断。MATLAB 首先完成执行运行中回调,然后执行中断回调。

如果运行中回调确实包含上述命令之一,则由运行中回调所属对象的 Interruptible 属性来确定是否发生中断:

  • 如果 Interruptible 的值为 'off',则不会发生中断。此时,由中断回调所属对象的 BusyAction 属性确定中断回调是被丢弃还是添加到回调队列中。

  • 如果 Interruptible 的值为 'on',则发生中断。下次 MATLAB 处理回调队列时,它会停止运行中回调的执行,并执行中断回调。在中断回调完成后,MATLAB 将继续执行运行中回调。

注意

回调的中断和执行在以下情况下会有不同的表现:

  • 如果中断回调是 DeleteFcnCloseRequestFcnSizeChangedFcn 回调,则无论是否存在 Interruptible 属性值都会发生中断。

  • 如果运行中回调当前正在执行 waitfor 函数,则无论是否存在 Interruptible 属性值都会发生中断。

  • 如果中断回调由 Timer 对象所有,则回调将根据调度执行,而不考虑 Interruptible 属性值。

注意

发生中断时,MATLAB 不保存属性状态或显示内容。例如,gcagcf 命令返回的对象可能会在另一个回调执行时发生改变。

回调排队,指定为 'queue''cancel'BusyAction 属性决定 MATLAB 如何处理中断回调的执行。有以下两种回调状态要考虑:

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

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

BusyAction 属性仅在同时满足以下两个条件时才确定回调排队行为:

在这些情况下,由中断回调所属对象的 BusyAction 属性确定 MATLAB 如何处理中断回调。以下是 BusyAction 属性的可能值:

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

  • 'cancel' - 不执行中断回调。

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

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

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

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

对捕获的鼠标点击的响应,指定为 'on''off',或者指定为数值或逻辑值 1 (true) 或 0 (false)。值 'on' 等效于 true,'off' 等效于 false。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值。

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

  • 'off' - 触发满足以下条件之一的 Patch 对象的最近前代的回调:

    • HitTest 属性设置为 'on'

    • PickableParts 属性所设置的值允许前代捕获鼠标点击

注意

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

此 属性 为只读。

删除状态,以 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值形式返回。

DeleteFcn 回调开始执行时,MATLAB 会将 BeingDeleted 属性设置为 'on'BeingDeleted 属性将一直保持 'on' 设置状态,直到组件对象不再存在为止。

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

父级/子级

全部展开

父级,指定为 AxesGroupTransform 对象。

子级,以空的 GraphicsPlaceholder 数组或 DataTip 对象数组形式返回。使用此属性来查看在图上绘制的数据提示的列表。

不能使用 Children 属性添加或删除子级。要向此列表中添加子级,请将 DataTip 对象的 Parent 属性设置为图对象。

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

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

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

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

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

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

标识符

全部展开

此 属性 为只读。

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

对象标识符,指定为字符向量或字符串标量。您可以指定唯一的 Tag 值作为对象的标识符。如果需要访问您代码中其他位置的对象,可以使用 findobj 函数基于 Tag 值搜索对象。

用户数据,指定为任何 MATLAB 数组。例如,您可以指定标量、向量、矩阵、元胞数组、字符数组、表或结构体。使用此属性存储对象上的任意数据。

如果您在 App 设计工具中工作,请在该 App 中创建公共或私有属性以共享数据,而不是使用 UserData 属性。有关详细信息,请参阅在用 App 设计工具创建的 App 内共享数据

版本历史记录

在 R2006a 之前推出

全部展开