Main Content

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

StackedLineChart 属性

堆叠图的外观和行为

StackedLineChart 属性控制堆叠图的外观和行为。在堆叠图中,您可以在垂直堆叠的单独 y 轴中绘制表或时间表的变量或矩阵的列。通过更改属性值,您可以修改堆叠图的特定方面。

您可以使用圆点表示法查询和设置属性。

T = readtable("outages.csv");
s = stackedplot(T);
c = s.Color;
s.Color = "red";

表数据

全部展开

源表,指定为表、时间表、表元胞数组或时间表元胞数组。

您可以使用 table 函数根据工作区变量创建表,也可以使用 readtable 函数以表的形式导入数据。您可以使用 timetable 函数根据工作区变量创建时间表,也可以使用 readtimetable 函数以时间表的形式导入数据。

注意

当绘制的数据来自数组时,该属性将被忽略并且为只读。

数组数据

全部展开

x 值,指定为向量。向量中的元素数必须等于 YData 属性值中的行数。

注意

当绘制的数据来自表或时间表时,该属性将被忽略并且为只读。

示例: [1:10]

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

y 值,指定为数组。stackedplot 函数在其自己的 y 轴中绘制 YData 值的每列。

注意

当绘制的数据来自表或时间表时,该属性将被忽略并且为只读。

示例: [1:10;5:5:50]

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

堆叠图显示

全部展开

y 轴的显示变量,使用下表中的索引方案之一指定。

注意:如果基于多个表或时间表创建一个堆叠图,则 DisplayVariables 只能是字符串数组、字符向量元胞数组或其元素是字符串数组或字符向量元胞数组的元胞数组。

索引方案示例

变量名称:

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

  • "A" - 名为 A 的变量

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

变量索引(仅适用于单个表或时间表):

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

  • 由数字组成的向量。

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

  • 3 - 表中的第三个变量

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

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

变量类型(仅适用于单个表或时间表):

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

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

嵌套元胞数组中指定的变量:

  • 包含数值数组的元胞数组(仅适用于单个表或时间表)。

  • 包含字符串数组的元胞数组。

  • 包含字符向量元胞数组的元胞数组。

  • {[1 2] 3} - 第一个和第二个变量绘制在一个 y 轴上,第三个变量绘制在另一个 y 轴上

  • {["A","B"],"C"} - 变量 AB 绘制在一个 y 轴上,变量 C 绘制在另一个 y 轴上

  • {{'A','B'},'C'} - 变量 AB 绘制在一个 y 轴上,变量 C 绘制在另一个 y 轴上

示例: s.DisplayVariables = [1 3 4] 指定第一个、第三个和第四个变量。

示例: s.DisplayVariables = {["Temp1","Temp2"],"Pressure"} 使用嵌套元胞数组指定 Temp1Temp2 一起绘制。

示例: s.DisplayVariables = {{1,2},5} 按数字指定变量,并将第一个和第二个变量一起绘制。

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

事件来自关联到输入时间表的事件表。stackedplot 函数将事件绘制为堆叠图上的垂直线或着色区域。有关事件表的信息,请参阅 eventtable

用于在同一 y 轴上合并同名变量的标志,指定为数值或逻辑值 1 (true) 或 0 (false)。将此标志设置为 false0 表示在不同的 y 轴上绘制来自不同输入但名称相同的变量。

包含 x 值的表变量,指定为字符串数组、字符向量、字符向量元胞数组、整数数组或逻辑数组。

  • 如果输入是一个表,则 XVariable 指定该表中的一个变量。

  • 如果输入是多个表,则 XVariable 可以为所有表指定一个变量,也可以为每个表指定一个不同的变量。

    例如,如果输入是 tbl1,tbl2,tbl3,并且每个表都有一个名为 X 的变量提供 x 值,则 XVariable 可以是 "X"。但是,如果 tbl1 包含名为 X1 的变量,tbl2 包含名为 X2 的变量,而 tbl3 包含名为 X3 的变量,则 XVariable["X1","X2","X3"]

注意

当绘制的数据来自数组或时间表时,该属性将被忽略并且为只读。

最小和最大 x 坐标轴范围,指定为 [min max] 形式的二元素向量,其中 max 大于 min。您可以将范围指定为数字、分类、日期时间或持续时间值。但您指定的值类型必须与坐标轴上的值类型匹配。

您可以指定这两个范围,也可以指定一个范围而让坐标区自动计算另一个范围。对于自动计算的最小值或最小值范围,分别使用 -infinf 来表示。

示例: s.XLimits = [0 100]

示例: s.XLimits = [-inf 100]

示例: s.XLimits = [0 inf]

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

y 轴的属性,指定为由 StackedAxesProperties 对象组成的数组。您可以对 AxesProperties 进行索引以更改堆叠图中一个变量的 y 轴属性。有关详细信息,请参阅 StackedAxesProperties 属性

示例: s.AxesProperties(2).YLimits = [0 10] 指定堆叠图中第二个绘图的范围。其他绘图不变。

线条的属性,指定为 StackedLineProperties 对象数组。您可以对 LineProperties 进行索引以更改堆叠图中一个变量的线条属性。有关详细信息,请参阅 StackedLineProperties 属性

示例: s.LineProperties(3).Color = "red" 更改堆叠图中第三个绘图的线条颜色。其他绘图不变。

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

线条

全部展开

线条颜色,指定为 RGB 三元组、十六进制颜色代码或第一个表中列出的颜色选项之一。

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

示例: "blue"

示例: [0 0 1]

示例: "#0000FF"

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

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

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 英寸。如果该线条具有标记,则线条宽度也会影响标记边。

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

标记

全部展开

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

标记描述生成的标记
"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 英寸。

标记轮廓颜色,指定为 "none"、RGB 三元组、十六进制颜色代码或第一个表中列出的颜色选项之一。

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

示例: "blue"

示例: "#D2F9A7"

标记填充颜色,指定为 "none"、RGB 三元组、十六进制颜色代码或第一个表中列出的颜色选项之一。

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

字体

全部展开

字体名称,指定为支持的字体名称或 "FixedWidth"。要正确显示和打印文本,您必须选择系统支持的字体。默认字体取决于您的操作系统和区域设置。

要使用在任何区域设置中都有较好显示效果的等宽字体,请使用 "FixedWidth"。等宽字体依赖于根 FixedWidthFontName 属性。设置根 FixedWidthFontName 属性会导致立即更新显示方式以使用新字体。

字体大小,指定为数值标量。字体大小会影响标题、轴标签和刻度标签。它还会影响与轴相关联的任何图例。字体大小以磅为单位进行测量。

示例: s.FontSize = 12

标签

全部展开

堆叠图的标题,指定为字符向量、字符串标量、数值标量、字符串数组、数值数组、元胞数组或分类数组。

如果 Title 的值是数组,则该数组的元素将垂直堆叠并显示为标题。如果值是元胞数组,则其元素可以是字符向量、字符串或数字。

也可以使用 title 函数添加标题。

title("My Title")

示例: s.Title = "A Title";

示例: s.Title = 137

示例: s.Title = ["Stacked plot",string(datetime("now"))];

示例: s.Title = {"Stacked plot",137};

堆叠的 y 轴上值的标签,指定为字符向量元胞数组或字符串数组。为 DisplayVariables 中的每个值指定一个标签。默认情况下,这些值与 DisplayVariables 中的值相同。

如果您在 DisplayVariables 中添加值、删除值或重新排列值,此属性将相应地更新,以维护值与标签的配对。

示例: s.DisplayLabels = ["Temperature","Humidity","Pressure"]

x 轴的标签,指定为字符向量、字符串标量、数值标量、字符串数组、数值数组、元胞数组或分类数组。

如果 XLabel 的值是数组,则该数组的元素将垂直堆叠并显示为 x 轴标签。如果值是元胞数组,则其元素可以是字符向量、字符串或数字。

也可以使用 xlabel 函数添加 x 轴标签。

xlabel("My x-Axis Label")

示例: s.XLabel = "An x-axis Label";

示例: s.XLabel = 137

示例: s.XLabel = ["An x-axis Label",string(datetime("now"))];

示例: s.XLabel = {"An x-axis Label",137};

图例中的输入标签,指定为字符串数组或字符向量元胞数组。每个标签对应一个输入表或时间表。默认情况下,图例中的标签是输入表或时间表的名称。

示例: s.LegendLabels = ["Table1","Table2","Table3"]

图例中标签的方向,指定为 "horizontal""vertical""horizontal" 方向在图例中以水平方向列出标签,"vertical" 方向在图例中以垂直方向列出标签。

图例可见性,指定为 "on""off",或者指定为数值或逻辑值 1 (true) 或 0 (false)。如果 LegendVisible"off",则不显示图例。

默认值为:

  • "off"(如果输入是单个表或时间表)

  • "on"(如果输入是多个表或时间表)

"on" 等效于 true"off" 等效于 false。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值。

位置

全部展开

绘图在父容器(通常为图窗、面板或选项卡)中的外界大小和位置,指定为 [left bottom width height] 形式的四元素向量。

  • leftbottom 元素定义容器左下角到绘图左下角的距离。

  • widthheight 元素是包含绘图和坐标区的矩形的宽度和高度,包括标题和轴标签等装饰元素。

默认值 [0 0 1 1] 涵盖容器的整个内部。单位相对于容器的大小进行归一化。要更改单位,请设置 Units 属性。

注意

当父容器为 TiledChartLayout 对象时,设置此属性不起作用。

绘图在父容器(通常为图窗、面板或选项卡)中的内界大小和位置,指定为 [left bottom width height] 形式的四元素向量。

  • leftbottom 元素定义容器左下角到绘图左下角的距离。

  • widthheight 是包含绘图和坐标区的矩形的宽度和高度,不包括标题和轴标签等装饰元素。

注意

当父容器为 TiledChartLayout 对象时,设置此属性不起作用。

绘图在父容器(通常为图窗、面板或选项卡)中的内界大小和位置,以 [left bottom width height] 形式的四元素向量返回。此属性等同于 InnerPosition 属性。

注意

当父容器为 TiledChartLayout 对象时,设置此属性不起作用。

在增加、删除或更改装饰元素时保持不变的位置属性,指定为下列值之一:

  • "outerposition" - 在添加、删除或更改装饰元素(例如标题或轴标签)时,OuterPosition 属性保持不变。如需任何位置调整,MATLAB 会调整 InnerPosition 属性。

  • "innerposition" - 在添加、删除或更改装饰元素(例如标题或轴标签)时,InnerPosition 属性保持不变。如需任何位置调整,MATLAB 会调整 OuterPosition 属性。

注意

当父容器为 TiledChartLayout 对象时,设置此属性不起作用。

位置单位,指定为下列值之一:

Units描述
"normalized"(默认值)根据容器进行归一化,容器通常是图窗或面板。容器的左下角映射到 (0,0),右上角映射到 (1,1)
"inches"英寸。
"centimeters"厘米。
"characters"

基于图形根对象的默认 uicontrol 字体:

  • 字符宽度 = 字母 x 的宽度。

  • 字符高度 = 两个文本行的基线之间的距离。

"points"字体磅数。一磅等于 1/72 英寸。
"pixels"

像素。

从 R2015b 开始,以像素为单位的距离不再依赖 Windows®Macintosh 系统上的系统分辨率。

  • 在 Windows 系统上,一个像素是 1/96 英寸。

  • Macintosh 系统上,一个像素是 1/72 英寸。

  • 在 Linux® 系统上,一个像素的大小由系统分辨率确定。

在对象创建过程中将单位指定为 Name,Value 对组时,您必须先设置 Units 属性,然后再指定要使用这些单位的属性(如 Position)。

布局选项,指定为 TiledChartLayoutOptionsGridLayoutOptions 对象。当图采用分块图布局或网格布局时,此属性非常有用。

要在分块图布局的网格中定位图,请设置 TiledChartLayoutOptions 对象的 TileTileSpan 属性。例如,假设有一个 3×3 分块图布局。布局的中心有一个包含若干图块的网格,外边缘四周各有一个图块。实际上,该网格不可见,外侧图块也不占用空间,除非您用坐标区或图填充它们。

Diagram of a 3-by-3 tiled chart layout.

以下代码将图 c 放置在网格的第三个图块中。

c.Layout.Tile = 3;

要使图占据多个图块,请将 TileSpan 属性指定为二元素向量。例如,此图占据了 2 行和 3 列的图块。

c.Layout.TileSpan = [2 3];

要将图放在四周的某个图块中,请将 Tile 属性指定为 "north""south""east""west"。例如,将值设置为 "east" 会将图放置在网格右侧的图块中。

c.Layout.Tile = "east";

要将图放入 App 内的一个布局中,请将此属性指定为 GridLayoutOptions 对象。有关在 App 中使用网格布局的详细信息,请参阅 uigridlayout

如果图不是分块图布局或网格布局的子级(例如,如果它是图窗或面板的子级),则此属性为空且不起作用。

交互性

全部展开

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

  • "on" - 显示对象。

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

父级/子级

全部展开

父容器,指定为 FigurePanelTabTiledChartLayoutGridLayout 对象。

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

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

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

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

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

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

版本历史记录

在 R2018b 中推出

全部展开