Main Content

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

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(___,Name,Value) 使用一个或多个名称-值对组参数修改区域图的属性。这些属性适用于所有显示区域。例如,'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.

创建矩阵 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 填充数据曲线和此基线之间的区域。

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

名称-值参数

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

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

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

注意

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

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

从 R2017b 开始,默认值是来自坐标区的 ColorOrder 属性的一个 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"不适用不适用不适用无颜色

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

区域轮廓颜色,指定为 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"不适用不适用不适用无颜色

以下是 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"无线条无线条

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

示例: 1.5

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

提示

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

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

扩展功能

版本历史记录

在 R2006a 之前推出