主要内容

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

piechart

饼图

自 R2023b 起. 建议替换 pie.

  • Pie chart

说明

向量数据

piechart(data) 创建向量 data 中的值的饼图。每个扇区都有一个标签,指示其大小占整个饼图的百分比。

示例

piechart(data,names) 为扇区指定名称。当指定扇区名称时,它们会包含在扇区标签中。

示例

piechart(categoricaldata) 创建分类值的饼图。一个类别的实例数量确定对应扇区的大小,每个扇区标签包含类别名称。

示例

表数据

piechart(tbl,datavar) 根据表 tbl 中的变量 datavar 创建饼图。对于表中的每行,生成的饼图都有一个对应的扇区。

piechart(tbl,datavar,namesvar) 指定用于扇区名称的变量 namesvar。如果 namesvar 包含重复的名称,MATLAB® 会显示多个具有相同名称的扇区。

示例

piechart(tbl,categoricalvar) 指定分类变量 categoricalvar。一个类别的实例数量确定对应扇区的大小,每个扇区标签包含对应的类别名称。

其他选项

piechart(parent,___) 在指定的父容器中创建饼图。父容器通常是图窗、面板或选项卡。指定 parent 作为上述任何语法中的第一个参量。

piechart(___,Name=Value) 使用一个或多个名称-值参量指定图的属性。在所有其他输入参量之后指定名称-值参量。例如,piechart([1 2 3],ExplodedWedges=2) 创建第二个扇区偏移的饼图。

有关属性列表,请参阅 PieChart Properties

示例

p = piechart(___) 返回 PieChart 对象。在创建图后,使用 p 设置其属性。有关属性列表,请参阅 PieChart Properties

示例

示例

全部折叠

根据数值向量创建一个饼图。默认情况下,每个扇区标签显示一个百分比值。

data = [1 2 3 4];
piechart(data)

Figure contains an object of type piechart.

根据分类向量创建一个饼图。piechart 函数对每个类别的实例数量进行计数,以确定每个扇区的大小。

通过调用 reordercats 函数控制扇区的顺序。

flavors = categorical(["Banana Cream","Pumpkin","Pumpkin","MATLAB","Blackberry"]);
flavors = reordercats(flavors,["MATLAB","Pumpkin","Banana Cream","Blackberry"]);
piechart(flavors)

Figure contains an object of type piechart.

创建一个表,其中包含馅饼竞赛中烘焙师的姓名以及对应的得票数。

Bakers = ["Betty";"Abby";"Afiq";"Ravi";"Dave"];
Votes = [2; 5; 5; 2; 5];
tbl = table(Bakers,Votes)
tbl=5×2 table
    Bakers     Votes
    _______    _____

    "Betty"      2  
    "Abby"       5  
    "Afiq"       5  
    "Ravi"       2  
    "Dave"       5  

根据该表创建一个饼图。

piechart(tbl,"Votes","Bakers")

Figure contains an object of type piechart.

您可以通过设置属性来指定旋转方向并沿圆移动所有扇区。您可以在调用 piechart 函数时通过指定名称-值参量来设置属性,也可以稍后设置 PieChart 对象的属性。

创建一个名为 data 的向量,并用它创建一个饼图。默认情况下,扇区按顺时针方向出现,第一个(蓝色)扇区的左边位于 0 度(12 点钟方向)。

data = [1 2 3 4];
piechart(data)

Figure contains an object of type piechart.

创建另一个饼图,但这次通过将 Direction 属性指定为名称-值参量将该属性设置为 "counterclockwise"。带一个输出参量调用 piechart 函数以存储 PieChart 对象。

p = piechart(data,Direction="counterclockwise");

Figure contains an object of type piechart.

通过将 PieChart 对象的 StartAngle 属性设置为 -90,将扇区逆时针方向移位 90 度。

p.StartAngle = -90;

Figure contains an object of type piechart.

您可以通过设置 LabelStyle 属性,将扇区标签从百分比更改为计数。LabelStyle 属性具有用于显示扇区名称、数据值和百分比的不同组合的选项。

根据数值向量和名称向量创建一个饼图。指定输出参量以存储 PieChart 对象。然后将标签更改为包含数据值而不是百分比。

data = [1 2 3];
names = ["Blueberry","Pumpkin","Lemon"];
p = piechart(data,names);
p.LabelStyle = "namedata";

Figure contains an object of type piechart.

另一个选项是仅显示名称,不显示任何数据或百分比值。

p.LabelStyle="name";

Figure contains an object of type piechart.

创建一个饼图,显示烘焙销售中每个参与者的销售额占总销售额的百分比。使用输出参量调用 piechart 函数以存储 PieChart 对象,以便稍后更改图的各个方面。

Bakers = ["Betty","Abby","Afiq","Ravi","Dave"];
Sales = [20 51.55 49.37 20.35 48.25];
p = piechart(Sales,Bakers);

Figure contains an object of type piechart.

查询 PieChart 对象的扇区名称。

p.Names
ans = 1×5 string
    "Betty"    "Abby"    "Afiq"    "Ravi"    "Dave"

将扇区名称更改为馅饼口味。

p.Names = ["Blueberry","Pumpkin","Banana Cream","Blackberry","Key Lime"];

Figure contains an object of type piechart.

将每个标签显示为两行文本,第一行为馅饼口味,第二行为销售额。要组合每个标签的不同元素,请从 Names 属性开始,并添加换行符、美元符号和 Sales 向量(转换为字符串)。

p.Labels = p.Names + "\newline$" + string(Sales);

Figure contains an object of type piechart.

您可以使用 colororder 函数更改饼图的颜色。例如,创建一个具有默认颜色的饼图。

piechart([1 2 3 4])

Figure contains an object of type piechart.

您可以从几个命名的调色板中进行选择,包括 gem(默认值)、glowsailreefmeadowdyeearth。将调色板更改为 meadow

colororder meadow

Figure contains an object of type piechart.

将调色板更改为 sail

colororder sail

Figure contains an object of type piechart.

自 R2024b 起

通过设置 NumDisplayWedges 属性,可以将多个小扇区的数据合并到一个名为 "Others" 的扇区中。也可以通过设置 DisplayOrder 属性,按升序或降序排列扇区。

例如,创建一个饼图,显示公司每个部门的员工数量。在创建图时,指定输出参量来存储 PieChart 对象,以便可以稍后修改它。

employees = [100 10 50 30 25 10 15];
departments = ["Engineering" "Sales" "User Experience" "Documentation" "IT" "HR" "Security"];
p = piechart(employees,departments,LabelStyle="name");

Figure contains an object of type piechart.

根据员工数量按降序排列扇区。

p.DisplayOrder = "descend";

Figure contains an object of type piechart.

显示三个扇区,并将其他扇区合并到第四个名为 "Others" 的扇区中。由于扇区通过 DisplayOrder 属性按降序排序,因此将 NumDisplayWedges 设置为 3 会显示三个最大的扇区。

p.NumDisplayWedges = 3;

Figure contains an object of type piechart.

要在一个图窗中创建多个图,请使用分块图布局。

创建 1×2 分块图布局。通过先后调用 nexttile 函数和 piechart 函数创建第一个图。然后通过调用 title 函数添加标题。对第二个图重复这些步骤。

tiledlayout(1,2)
nexttile
piechart([1 2 3 4])
title("2022 Totals")
nexttile
piechart([10 3 1 5 6 4])
title("2023 Totals")

Figure contains objects of type piechart. The chart of type piechart has title 2022 Totals. The chart of type piechart has title 2023 Totals.

输入参数

全部折叠

扇区数据,指定为数值向量或持续时间值向量。每个扇区的大小表示为整个饼图的百分比,具体取决于 data 元素的总和:

  • 如果 sum(data) < 1,则 data 的值指定饼图扇区的面积,结果为部分饼图。

  • 如果 sum(data)1,则 MATLAB 通过 data/sum(data) 对值进行归一化,以确定饼图的每个扇区的面积。

示例: piechart([0.1 0.2 0.3]) 创建部分饼图。

示例: piechart([1 2 3 4]) 使用总和大于 1 的值创建饼图。

示例: piechart([0.5 0.25 0.25]) 使用总和为 1 的比例值创建饼图。

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

扇区名称,指定为字符串向量、字符向量元胞数组或包含数值、持续时间、日期时间或分类值的向量。该向量或元胞数组必须与 data 具有相同数量的元素。扇区名称和扇区百分比包含在扇区标签中。

示例: piechart([1 2 3],["Apples","Cherries","Grapes"]) 将名称指定为字符串向量。

示例: piechart([1 2 3],categorical(["Apples","Cherries","Grapes"])) 将名称指定为分类向量。

示例: piechart([10 20 30],minutes([1 2 3])) 将名称指定为持续时间向量。

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

分类扇区数据,指定为分类向量或逻辑向量。每个扇区的大小与对应的值在向量中出现的次数成比例。扇区名称是类别名称。

示例: piechart(categorical(["Apples","Cherries","Grapes","Oranges"])) 创建一个具有四个相同大小扇区的饼图。

示例: piechart(categorical(["Apples","Cherries","Cherries", "Cherries"])) 创建一个饼图,其中 "Cherries" 扇区占饼图的 3/4。"Apples" 扇区占饼图的其余 1/4。

数据类型: categorical | logical

包含扇区数据的源表,指定为表或时间表。

包含扇区数据的表变量,使用下表中的索引方案之一指定。您指定的表变量可以包含数值或持续时间值。

索引方案示例

变量名称:

  • 字符串标量或字符向量。

  • pattern 对象。模式对象只能引用一个变量。

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

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

变量索引:

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

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

  • 3 - 表中的第三个变量

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

变量类型:

  • vartype 下标,用于选择指定类型的表变量。该下标只能引用一个变量。

  • vartype("double") - 包含双精度值的变量

示例: piechart(tbl,"mydata") 指定名为 mydata 的表变量。

包含扇区名称的表变量,使用下表中的索引方案之一指定。您指定的表变量可以包含字符串向量、字符向量元胞数组或由数值、日期时间、持续时间或分类值组成的向量。

索引方案示例

变量名称:

  • 字符串标量或字符向量。

  • pattern 对象。模式对象只能引用一个变量。

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

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

变量索引:

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

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

  • 3 - 表中的第三个变量

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

变量类型:

  • vartype 下标,用于选择指定类型的表变量。该下标只能引用一个变量。

  • vartype("double") - 包含双精度值的变量

示例: piechart(tbl,"mydata","mynames") 使用变量 mydata 中的扇区数据和变量 mynames 中的扇区名称创建饼图。

包含分类数据的表变量,使用下表中的索引方案之一指定。您指定的表变量可以包含分类数据或逻辑值。一个类别的实例数量确定对应扇区的大小。

索引方案示例

变量名称:

  • 字符串标量或字符向量。

  • pattern 对象。模式对象只能引用一个变量。

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

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

变量索引:

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

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

  • 3 - 表中的第三个变量

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

变量类型:

  • vartype 下标,用于选择指定类型的表变量。该下标只能引用一个变量。

  • vartype("double") - 包含双精度值的变量

示例: piechart(tbl,"mycats") 指定名为 mycats 的表变量。

父容器,指定为 FigurePanelTabTiledChartLayoutGridLayout 对象。

名称-值参数

全部折叠

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

示例: piechart([1 2 3 4],StartAngle=90) 创建一个起始角度为 90 度的饼图。

注意

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

偏移扇区,对于数值数据,指定为数值向量或逻辑向量。如果使用分类数据创建图,则可以指定包含一个或多个类别名称的字符串向量或字符向量。此饼图中的橙色扇区经过偏移。

Pie chart with the second slice offset

示例: piechart([5 7 4 6],ExplodedWedges=3) 创建第三个扇区有偏移的饼图。

示例: piechart([5 7 4 6],ExplodedWedges=[1 3]) 创建第一个和第三个扇区偏移的饼图。

示例: piechart([5 7 4 6],ExplodedWedges=[false false true false]) 创建第三个扇区有偏移的饼图。

示例: piechart(categorical(["A" "B" "C" "D"]),ExplodedWedges="B") 使用分类数据创建饼图,其中扇区 B 经过偏移。

第一个扇区的起始角度,指定为以度为单位的标量值。默认情况下,起始角度为 0 度。正值使扇区按顺时针方向旋转。负值使扇区按逆时针方向旋转。

您可以通过考虑时钟上数字的排列来想象起始角度的位置。起始角度为 0 度对应于 12 点钟方向,起始角度为 90 度对应于 3 点钟方向。

Two pie charts with different starting angles. One chart has a starting angle of 0 degrees, and the other chart has a starting angle of 90 degrees.

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

用于添加扇区的方向,指定为 "clockwise""counterclockwise"

  • "clockwise" - 按顺时针方向添加扇区。

  • "counterclockwise" - 按逆时针方向添加扇区。

输出参量

全部折叠

PieChart 对象,它是一个独立可视化。在创建图后,使用 p 设置饼图的属性。

详细信息

全部折叠

版本历史记录

在 R2023b 中推出

全部展开