Main Content

fill

创建二维填充补片

  • Green star on a Cartesian plot

说明

示例

fill(X,Y,C) 将填充多边形区域绘制为补片,其顶点位于由 XY 指定的 (x,y) 位置。

  • 要绘制一个区域,请将 XY 指定为向量。

  • 要绘制多个区域,请将 XY 指定为矩阵,其中每列对应一个多边形。

C 确定区域的填充颜色。

fill(X1,Y1,C1,...,Xn,Yn,Cn) 在同一坐标区上绘制多个二维填充多边形区域。

示例

fill(___,Name,Value) 通过使用一个或多个名称-值参量设置属性来修改补片。可以使用上述语法中的任何输入参量组合来指定补片。例如,fill(X,Y,C,'LineWidth',2) 指定一个围绕所有补片的两点边框。有关属性列表,请参阅Patch 属性

fill(ax,___)ax 指定的坐标区中绘制多边形区域,而不是在当前坐标区 (gca) 中。参量 ax 可以置于上述语法中的任何输入参量组合之前。

示例

p = fill(___) 返回一个 Patch 对象或由 Patch 对象组成的向量。在绘制区域后,使用 p 来查询和修改属性。有关属性列表,请参阅Patch 属性

示例

全部折叠

将五边形顶点的 (x,y) 坐标定义为向量 xy。然后用指定的填充颜色(红色)绘制五边形。

x = [0 4 5 2 1];
y = [0 0 2 4 3];
fill(x,y,'r')

创建一个正方形的 xy 坐标组成的向量。指定一个由颜色图索引组成的列向量,正方形中的每个顶点对应一个行。fill 函数使用周围的顶点对默认颜色图中其余填充颜色进行插值。

x = [0 2 2 0];
y = [0 0 2 2];
c = [1; 0.5; 0; 0.75];
fill(x,y,c)

将矩阵 xy 定义为两个三角形的顶点的 (x,y) 坐标,其中每列对应一个三角形。将 c 指定为与 xy 维数相同的矩阵。c 中的每个值指定对应顶点的颜色图索引。

x = [0 2; 0 2; 4 4];
y = [2 0; 4 1; 2 0];
c = [1 0; 1 0; 0.3 0];
fill(x,y,c)

将六边形顶点的 (x,y) 坐标指定为向量 xy。将这些坐标绘制成一个六边形。然后在相同的坐标区上绘制此六边形的另外两个平移版本,以创建三个部分重叠的六边形。将每个六边形的 FaceAlpha 属性指定为小于 1 的值,以绘制半透明的六边形。

x = [1 3 4 3 1 0];
y = [0 0 2 4 4 2];
hold on
fill(x,y,'cyan','FaceAlpha',0.3)
fill(x+2,y,'magenta','FaceAlpha',0.3)
fill(x+1,y+2,'yellow','FaceAlpha',0.3)

通过指定 (x,y) 坐标 xy 的向量以及一个 RGB 三元组 c,绘制一个填充八边形。将生成的补片存储为 p

t = (1/16:1/8:1)'*2*pi;
x = cos(t);
y = sin(t);
c = [0.8 0.7 0.8];
p = fill(x,y,c);

使用 p 修改绘制的八边形的属性。通过将 LineWidth 属性设置为 3 来指定较粗的轮廓,并通过修改 EdgeColor 属性将轮廓的颜色更改为一个自定义 RGB 三元组。

p.LineWidth = 3;
p.EdgeColor = [0.5 0.2 0.55];

输入参数

全部折叠

补片顶点的 x 坐标,指定为向量或矩阵。

补片数量描述示例

一个补片

指定 XY 为相同长度的向量。向量可以有任何方向。

绘制一个三角形补片。

X = [0 0 4];
Y = [2 4 2];
C = 1;
fill(X,Y,C)

两个或更多补片
(共享 XY

将共享坐标指定为向量。将其他坐标指定为矩阵。向量的长度必须与矩阵的一个维度的长度匹配。如果矩阵为方阵,则 MATLAB® 将绘制矩阵的列对向量的图。

绘制两个共享 x 坐标的三角形补片。

X = [0 0 4];
Y = [0 -0; 2 -2; 0 0];
C = [0 1];
fill(X,Y,C)

两个或更多补片
XY 是唯一的)

XY 指定为大小相同的矩阵。MATLAB 绘制矩阵的对应列。

用唯一 x 和 y 坐标绘制两个三角形补片。

X = [0 5; 0 5; 4 9];
Y = [2 0; 4 2; 2 0];
C = [0 1];
fill(X,Y,C)

如果数据没有定义闭合区域,则 fill 会使区域闭合。

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

补片顶点的 y 坐标,指定为向量或矩阵。

补片数量描述示例

一个补片

指定 XY 为相同长度的向量。向量可以有任何方向。

绘制一个三角形补片。

X = [0 0 4];
Y = [2 4 2];
C = 1;
fill(X,Y,C)

两个或更多补片
(共享 XY

将共享坐标指定为向量。将其他坐标指定为矩阵。向量的长度必须与矩阵的一个维度的长度匹配。如果矩阵为方阵,则 MATLAB 将绘制矩阵的列对向量的图。

绘制两个共享 x 坐标的三角形补片。

X = [0 0 4];
Y = [0 -0; 2 -2; 0 0];
C = [0 1];
fill(X,Y,C)

两个或更多补片
XY 是唯一的)

XY 指定为大小相同的矩阵。MATLAB 绘制矩阵的对应列。

用唯一 x 和 y 坐标绘制两个三角形补片。

X = [0 5; 0 5; 4 9];
Y = [2 0; 4 2; 2 0];
C = [0 1];
fill(X,Y,C)

如果数据没有定义闭合区域,则 fill 会使区域闭合。

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

补片颜色,指定为颜色名称、RGB 三元组、颜色图索引向量或颜色图索引矩阵。

  • 颜色名称 - 颜色名称(如 'red')或短名称(如 'r')。

  • RGB 三元组 - 三元素行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]。RGB 三元组对于创建自定义颜色很有用。

  • 由颜色图索引组成的向量 - 数值向量,其中每个元素对应一个区域。

  • 由颜色图索引组成的矩阵 - 与 XY 具有相同维数的数值矩阵。

指定颜色的方式取决于颜色方案以及是绘制一个多边形区域还是多个区域。下表说明了最常见的情况。

颜色方案指定颜色的方式示例
所有区域一种颜色

从下表中指定一种颜色名称或短名称,或指定一个 RGB 三元组。

创建矩阵 xy。然后绘制用红色填充的区域。

x = [2 0; 2 0; 4 4];
y = [0 2; 1 4; 0 2];
fill(x,y,'r')

Cartesian plot with two red triangles

每个区域一种颜色

指定一个由颜色图索引组成的 n×1 或 1×n 向量,其中 n 是多边形区域的数量。

创建矩阵 xy 以及向量 c。然后绘制用指定的颜色图颜色填充的区域。

x = [2 0; 2 0; 4 4];
y = [0 2; 1 4; 0 2];
c = [1; 0];
fill(x,y,c)

Cartesian plot with one yellow and one blue triangle

对面进行插补着色

指定一个由颜色图索引组成的 m×n 矩阵,其中 [m,n] = size(X)。为每个顶点指定一种颜色。

创建矩阵 xyc。然后绘制用从顶点颜色 c 插值的填充颜色填充的区域。

x = [2 0; 2 0; 4 4];
y = [0 2; 1 4; 0 2];
c = [0.5 1; 0 1; 1 0];
fill(x,y,c)

Cartesian plot with two triangles filled with a yellow, green, and blue gradient

常见颜色的颜色名称和 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

目标坐标区,指定为 Axes 对象。如果未指定坐标区,则 fill 函数将在当前坐标区中进行绘制;或如果不存在 Axes 对象,则创建一个对象。

名称-值参数

将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: fill(x,y,c,'FaceAlpha',.5,'LineStyle',':') 创建包含点线边的半透明多边形。

注意

此处所列的属性只是一部分补片属性。有关完整列表,请参阅 Patch 属性

面颜色,指定为 '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,1] 中的标量 - 在所有面上使用统一的透明度。值为 1 时完全不透明,值为 0 时完全透明。此选项不会使用 FaceVertexAlphaData 属性中的透明度值。

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

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

边颜色,指定为下表中的值之一。默认边颜色为黑色,值为 [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

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

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

Sample of solid line

"--"虚线

Sample of dashed line

":"点线

Sample of dotted line

"-."点划线

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

"none"无线条无线条

输出参量

全部折叠

显示的多边形区域,以 Patch 对象或由 Patch 对象组成的向量形式返回。每个补片对应一个绘制区域。在绘制区域后,使用 p 查询或更改区域的属性。

替代功能

几个函数提供 fill 的所有功能,以及用于绘制、操作和查询多边形的附加选项。在适当情况下时,可以使用下面这些函数代替 fill

  • 要创建正多边形,可使用 nsidedpoly。此函数简化正多边形的创建,并为管理所绘制的多边形的位置和维度提供附加选项。

    nsidedpoly 创建一个 polyshape 对象,并在创建后使用附加选项来更改 polyshape 的位置、半径和边长。使用 nsidedpoly 创建的 polyshape 可以通过使用 polyshape 的所有属性以及 nsidedpoly 独有的属性进行操作。

  • 要创建不规则多边形,可使用 polyshape。此函数提供用于定义多边形的额外选项。

    polyshape 创建一个 polyshape 对象,该对象具有附加的属性和对象函数,用于在创建多边形后对其进行查询和修改。有关完整列表,请参阅 polyshape

  • 要像 fill 一样创建 Patch 对象,可使用 patch。此函数提供附加的选项,用于通过面和顶点数据定义二维和三维补片。

扩展功能

版本历史记录

在 R2006a 之前推出

全部展开