主要内容

area

填充区二维绘图

  • Filled area 2-D plot

说明

向量和矩阵数据

area(X,Y) 绘制 Y 中的值对 x 坐标 X 的图。然后,该函数根据 Y 的形状填充曲线之间的区域:

  • 如果 Y 是向量,则该图包含一条曲线。area 填充该曲线和水平轴之间的区域。

  • 如果 Y 是矩阵,则该图对 Y 中的每列都包含一条曲线。area 填充这些曲线之间的区域并堆叠它们,从而显示在每个 x 坐标处每个行元素在总高度中的相对量。

示例

area(Y) 绘制 Y 对一组隐式 x 坐标的图,并填充曲线之间的区域。

  • 如果 Y 是向量,则 x 坐标范围从 1 到 length(Y)

  • 如果 Y 是矩阵,则 x 坐标的范围是从 1 到 Y 中的行数。

示例

area(___,basevalue) 指定区域图的基线值。basevalue 对应于水平基线。area 填充曲线和这条线之间的区域。将 basevalue 指定为上述任一语法中的最后一个参量。

示例

表数据

area(tbl,xvar,yvar) 绘制表 xvar 中的变量 yvartbl。要绘制一条曲线,请为 xvar 指定一个变量,并为 yvar 指定一个变量。要绘制多条曲线,请为 xvaryvar(或两者)指定多个变量。如果两个参量都指定多个变量,它们指定的变量数目必须相同。 (自 R2026a 起)

示例

area(tbl,yvar) 从表 tbl 中绘制变量 yvar。如果该表是时间表,则绘制 yvar 对时间表的行时间的图。 (自 R2026a 起)

其他选项

area(___,Name=Value) 使用一个或多个名称-值对组参量修改区域图的属性。这些属性适用于所有显示区域。例如,area(X,Y,LineStyle="--") 为绘图指定虚线线型。需要在上述任一语法中的所有参量之后指定名称-值参量。有关属性列表,请参阅 Area 属性

示例

area(ax,___) 在目标坐标区上显示区域图。将坐标区指定为上述任一语法中的第一个参量。

示例

a = area(___) 返回一个或多个 Area 对象。对象的数量等于绘制区域的数量。创建区域后,使用 a 修改区域的属性。有关属性列表,请参阅 Area 属性

示例

示例

全部折叠

创建一个包含四个值的向量。在区域图中显示这些值。

y = [1 5 6 3];
area(y)

Figure contains an axes object. The axes object contains an object of type area.

创建矩阵 Y。然后将 Y 中的值显示为一个区域图。由于 Y 包含三列,area 绘制三条曲线并将其堆叠。

Y = [1 5 3; 3 2 7; 1 5 3; 2 6 1];
area(Y)

Figure contains an axes object. The axes object contains 3 objects of type area.

x 定义为一个包含三个汽车经销商 ID 的向量。将 Y 定义为矩阵,其中包含每个车型售出的汽车数量。在区域图中显示矩阵中的值。然后添加轴标签和图例。

x = [10 11 12];
Y = [21.6 25.4; 70.8 66.1; 58.0 43.6];
area(x,Y)
xlabel('Dealership ID')
ylabel('Sales')
legend({'Model A','Model B'})

Figure contains an axes object. The axes object with xlabel Dealership ID, ylabel Sales contains 2 objects of type area. These objects represent Model A, Model B.

沿 x 轴设置对应 x 中各值的刻度线。

ax = gca; % current axes
ax.XTick = x;

Figure contains an axes object. The axes object with xlabel Dealership ID, ylabel Sales contains 2 objects of type area. These objects represent Model A, Model B.

自 R2026a 起

创建一个具有四个变量的表并绘制这些变量。然后,添加一个图例。默认情况下,x 轴标签和图例显示变量名称。

Distance = (1:5)';
SensorA = [6; 4; 5; 1; 2];
SensorB = SensorA + 2;
SensorC = SensorA + 3;
tbl = table(Distance,SensorA,SensorB,SensorC);
area(tbl,"Distance",["SensorA","SensorB","SensorC"]);
legend

Figure contains an axes object. The axes object with xlabel Distance contains 3 objects of type area.

创建矩阵 Y。然后在基线值为 -4 的区域图中显示 Y 的值。area 填充由曲线和直线 y = -4 指定的区域。

Y = [1 5 3; 3 2 7; 1 5 3; 2 6 1];
basevalue = -4;
area(Y,basevalue)

Figure contains an axes object. The axes object contains 3 objects of type area.

创建矩阵 Y。在使用点线样式的区域图中显示 Y 的值。

Y = [1 3 5; 3 2 7; 3 4 2];
area(Y,'LineStyle',':')

Figure contains an axes object. The axes object contains 3 objects of type area.

创建一个采用 'flow' 图块排列方式的分块图布局,以便坐标区填充布局中的可用空间。接下来,调用 nexttile 函数创建一个 Axes 对象,并返回它作为 ax1。通过将 ax1 传递给 area 函数来显示区域图。

tiledlayout('flow')
ax1 = nexttile;
Y1 = [3 6; 1 5; 7 2; 5 9];
area(ax1,Y1)

Figure contains an axes object. The axes object contains 2 objects of type area.

重复该过程以创建第二个 Axes 对象和第二个区域图。

ax2 = nexttile;
Y2 = [4 2 11; 5 6 0; 1 7 2; 9 5 9];
area(ax2,Y2)

Figure contains 2 axes objects. Axes object 1 contains 2 objects of type area. Axes object 2 contains 3 objects of type area.

创建矩阵 Y。然后创建一个区域图,在调用 area 函数时指定输出参量。在本例中,area 返回包含三个 Area 对象的向量。每个对象对应于 Y 的一个不同列。

Y = [2 3 4; 6 1 5; 7 4 9];
a = area(Y);

Figure contains an axes object. The axes object contains 3 objects of type area.

将第二个区域改为绿色,并使用加粗的红边。

a(2).FaceColor = [0.2 0.6 0.5];
a(2).EdgeColor = [0.63 0.08 0.18];
a(2).LineWidth = 2;

Figure contains an axes object. The axes object contains 3 objects of type area.

显示一个具有三条曲线的区域图。

area([1 5 3; 3 2 7; 1 5 3; 2 6 1])

Figure contains an axes object. The axes object contains 3 objects of type area.

将色序设置为蓝色、紫色和灰色。

newcolors = [0 0.5 1; 0.5 0 1; 0.7 0.7 0.7];
colororder(newcolors)

Figure contains an axes object. The axes object contains 3 objects of type area.

输入参数

全部折叠

x 坐标,指定为向量或矩阵。X 的大小和形状取决于您的数据形状和您要创建的绘图类型。下表说明了最常见的情况。

绘图类型如何指定坐标
单一区域

指定 XY 为相同长度的行向量或列向量的任意组合。例如:

area([1 3 5],[9; 4; 6])
指定 X 为递增值向量。如果 X 的值不增加,则 area 将在绘制之前对值进行排序。

堆叠区域

areaY 的每列绘制一个填充区域并堆叠这些区域。将 Y 指定为矩阵,将 X 指定为行向量或列向量,其长度等于 Y 中的行数。例如:

area([1 2 3 4],[3 6; 1 5; 7 2; 5 9])
如果 X 的值不增加,则 area 将在绘制之前对值进行排序。

您也可以将 X 指定为大小与 Y 相同的矩阵。为避免在 X 为矩阵时出现意外输出,请指定具有相同列的 X

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

y 坐标,指定为向量或矩阵。Y 的大小和形状取决于您的数据形状和您要创建的绘图类型。下表说明可能的情况。

绘图类型如何指定坐标
单一区域

指定 XY 为相同长度的行向量或列向量的任意组合。例如:

area([1 3 5],[9; 4; 6])
指定 X 为递增值向量。如果 X 的值不增加,则 area 将在绘制之前对值进行排序。

堆叠区域

areaY 的每列绘制一个填充区域并堆叠这些区域。将 Y 指定为矩阵,将 X 指定为行向量或列向量,其长度等于 Y 中的行数。例如:

area([1 2 3 4],[3 6; 1 5; 7 2; 5 9])
如果 X 的值不增加,则 area 将在绘制之前对值进行排序。

您也可以将 X 指定为大小与 Y 相同的矩阵。为避免在 X 为矩阵时出现意外输出,请指定具有相同列的 X

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

基线值,指定为数值标量。基线值指定水平基线的 y 坐标。area 填充数据曲线和此基线之间的区域。

包含要绘制的数据的源表,指定为表或时间表。

包含 x 坐标的表变量,使用下表中的索引方案之一指定。您指定的表变量可以包含数值、分类、日期时间或持续时间值。如果 xvaryvar 都指定多个变量,则变量的数目必须相同。

索引方案示例

变量名称:

  • 字符串数组、字符向量或元胞数组。

  • pattern 对象。

  • "A"'A' - 名为 A 的变量

  • ["A","B"]{'A','B'} - 两个名为 AB 的变量

  • "Var"+digitsPattern(1) - 变量名为 "Var" 后跟一个数字

变量索引:

  • 引用变量在表中位置的索引编号。

  • 由数字组成的向量。

  • 逻辑向量。通常,此向量的长度与变量的数目相同,但可以省略尾部的 0false 值。

  • 3 - 表中的第三个变量

  • [2 3] - 表中的第二个和第三个变量

  • [false false true] - 第三个变量

变量类型:

  • vartype 下标,用于选择指定类型的变量。

  • vartype("categorical") - 包含分类值的所有变量

示例: area(tbl,["x1","x2"],"y")x 坐标指定名为 x1x2 的表变量,并为 y 坐标指定名为 y 的变量。

示例: area(tbl,2,"y")x 坐标指定第二个表变量,并为 y 坐标指定名为 y 的变量。

示例: area(tbl,vartype("numeric"),"y")x 坐标指定所有数值变量,并为 y 坐标指定名为 y 的变量。

包含 y 坐标的表变量,使用下表中的索引方案之一指定。您指定的表变量可以包含数值或持续时间值。如果 xvaryvar 都指定多个变量,则变量的数目必须相同。

索引方案示例

变量名称:

  • 字符串数组、字符向量或元胞数组。

  • pattern 对象。

  • "A"'A' - 名为 A 的变量

  • ["A","B"]{'A','B'} - 两个名为 AB 的变量

  • "Var"+digitsPattern(1) - 变量名为 "Var" 后跟一个数字

变量索引:

  • 引用变量在表中位置的索引编号。

  • 由数字组成的向量。

  • 逻辑向量。通常,此向量的长度与变量的数目相同,但可以省略尾部的 0false 值。

  • 3 - 表中的第三个变量

  • [2 3] - 表中的第二个和第三个变量

  • [false false true] - 第三个变量

变量类型:

  • vartype 下标,用于选择指定类型的变量。

  • vartype("categorical") - 包含分类值的所有变量

示例: area(tbl,"x",["y1","y2"])x 坐标指定名为 x 的表变量,并为 y 坐标指定名为 y1y2 的变量。

示例: area(tbl,"x",2)x 坐标指定名为 x 的表变量,并为 y 坐标指定第二个表变量。

示例: area(tbl,"x",vartype("numeric"))x 坐标指定名为 x 的表变量,并为 y 坐标指定所有数值变量。

目标坐标区,指定为 Axes 对象。如果未指定坐标区,则 area 在当前坐标区中显示绘图。

名称-值参数

全部折叠

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

示例: area([1 2 3],FaceColor="red") 为区域图指定红色填充颜色。

注意

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

区域填充颜色,指定为 RGB 三元组、十六进制颜色代码、颜色名称或 "flat"

对于自定义颜色,请指定 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"不适用不适用不适用无颜色

下表列出了浅色和深色主题中绘图的默认调色板。

调色板调色板颜色

"gem" - 浅色主题默认值

在 R2025a 之前的版本中: 大多数绘图默认使用这些颜色。

Sample of the "gem" color palette

"glow" - 深色主题默认值

Sample of the "glow" color palette

您可以使用 orderedcolorsrgb2hex 函数获取这些调色板的 RGB 三元组和十六进制颜色代码。例如,获取 "gem" 调色板的 RGB 三元组并将其转换为十六进制颜色代码。

RGB = orderedcolors("gem");
H = rgb2hex(RGB);

在 R2023b 之前的版本中: 使用 RGB = get(groot,"FactoryAxesColorOrder") 获取 RGB 三元组。

在 R2024a 之前的版本中: 使用 H = compose("#%02X%02X%02X",round(RGB*255)) 获取十六进制颜色代码。

区域轮廓颜色,指定为 RGB 三元组、十六进制颜色代码、颜色名称或 "flat"。将此属性指定为 "flat" 将使用颜色图的颜色。

对于自定义颜色,请指定 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"不适用不适用不适用无颜色

下表列出了浅色和深色主题中绘图的默认调色板。

调色板调色板颜色

"gem" - 浅色主题默认值

在 R2025a 之前的版本中: 大多数绘图默认使用这些颜色。

Sample of the "gem" color palette

"glow" - 深色主题默认值

Sample of the "glow" color palette

您可以使用 orderedcolorsrgb2hex 函数获取这些调色板的 RGB 三元组和十六进制颜色代码。例如,获取 "gem" 调色板的 RGB 三元组并将其转换为十六进制颜色代码。

RGB = orderedcolors("gem");
H = rgb2hex(RGB);

在 R2023b 之前的版本中: 使用 RGB = get(groot,"FactoryAxesColorOrder") 获取 RGB 三元组。

在 R2024a 之前的版本中: 使用 H = compose("#%02X%02X%02X",round(RGB*255)) 获取十六进制颜色代码。

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

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

Sample of solid line

"--"虚线

Sample of dashed line

":"点线

Sample of dotted line

"-."点划线

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

"none"无线条无线条

区域轮廓宽度,指定为数值标量(以磅为单位)。一磅等于 1/72 英寸。

示例: 1.5

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

提示

  • area 使用基于坐标区的 ColorOrder 属性的颜色。它循环使用所有颜色,如果绘制的填充区域数大于颜色数,它就会重复此循环。

    通过在坐标区中设置 ColorOrder 属性,您可以在绘图后更改颜色。您也可以调用 colororder 函数来更改图窗中所有坐标区的色序。

扩展功能

全部展开

版本历史记录

在 R2006a 之前推出

全部展开