Main Content

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

pareto

帕累托图

  • Pareto chart

说明

示例

pareto(y) 创建 y 的帕累托图。帕累托图是以降序排列各条形的条形图,它包括一条显示累积分布的线。该图会显示占累积分布 95% 的最高的若干个条形,最多显示 10 个条形。如果 n 个条形加起来正好包含分布的 95%,并且 n 小于 10,图将显示 n+1 个条形。

沿 x 轴的条形标签是 y 向量中条形值的索引。

示例

pareto(y,x) 指定条形的 x 坐标(或标签)。yx 的长度都必须相同。

示例

pareto(___,threshold) 指定一个介于 01 之间的阈值。阈值是要包含在图中的累积分布的比例。图包括占该比例的最高的若干个条形,最多显示 10 个条形。如果 n 个条形加起来正好包含指定的比例,并且 n 小于 10,图将显示 n+1 个条形。

示例

pareto(target,___) 在指定的目标坐标区中创建图。

charts = pareto(___) 以数组形式返回 BarLine 对象。通过设置属性,您可以使用这些对象修改帕累托图的各个方面。有关属性列表,请参阅 Bar 属性Line 属性

示例

除了以 charts 数组形式返回对象,[charts,ax] = pareto(___) 还返回一个由两个 Axes 对象组成的数组。通过设置属性,您可以使用这些对象修改图的各个方面。有关属性列表,请参阅 Axes 属性Bar 属性Line 属性

示例

全部折叠

y 定义为一个由五个数字组成的向量(这五个数字之和为 100),以便查看图中数字和条形之间的关系。

然后,在不指定 x 坐标的情况下创建 y 的帕累托图。x 轴刻度标签是 y 中条形值的位置。在本例中,y(3) 是最大值,因此其条形显示在最左边的位置,其后是 y(5)y(4)。这三个条形占累计分布的 95% 以上,因此图中只显示这三个条形。

y = [2 3 45 20 32];
pareto(y)

Figure contains 2 axes objects. Axes object 1 contains 2 objects of type bar, line. Axes object 2 is empty.

当最高的 n 个的条形正好占累计分布的 95% 时,pareto 在图中包含 n+1 个条形。例如,定义 y 以使两个条形正好包含 95% 的数据。pareto 显示最高的三个条形。

y = [4 1 40 55];
pareto(y)

Figure contains 2 axes objects. Axes object 1 contains 2 objects of type bar, line. Axes object 2 is empty.

使用一个帕累托图,分析对 200 名受访者进行的一项调查中人员所青睐的馅饼类型情况。将 x 定义为一个包含五种馅饼口味的字符串向量,并将 y 定义为每种口味的投票数。创建一个帕累托图,并通过将 threshold 参数设置为 1 包括累积分布中的所有值。

x = ["Chocolate" "Apple" "Pecan" "Cherry" "Pumpkin"];
y = [35 50 30 5 80];
pareto(y,x,1)
ylabel('Votes')

Figure contains 2 axes objects. Axes object 1 with ylabel Votes contains 2 objects of type bar, line. Axes object 2 is empty.

x 定义为一个字符串向量,其中包含参与某项目的八个编程人员的姓名。将 y 定义为每个编程人员贡献的代码行数。在具有标题的帕累托图中显示数据。

x = ["Fred" "Gina" "Norman" "Josphat" "Julia" "Wally" "Heidi" "Pat"];
y = [200 120 555 608 1024 101 57 687];
pareto(y,x)
title('Lines of Code by Programmer')

Figure contains 2 axes objects. Axes object 1 with title Lines of Code by Programmer contains 2 objects of type bar, line. Axes object 2 is empty.

x 定义为一个分类向量,其中包含在某特定工厂制造的五种不同火箭模型的名称。将 y 定义为每个类别的随机抽样中无法发射的火箭数量。在帕累托图中显示数据,并在 xy 轴上添加标签。

x = categorical(["Firestorm" "Mr. Ballista" "Moonshot" "Lil' Joe" "Houston"]); 
y = [526 100 221 40 10];
pareto(y,x)
xlabel('Rocket Model')
ylabel('Launch Failures')

Figure contains 2 axes objects. Axes object 1 with xlabel Rocket Model, ylabel Launch Failures contains 2 objects of type bar, line. Axes object 2 is empty.

x 定义为一个日期时间向量,表示特定电子元件的制造日期。将 y 定义为每批元件的缺陷数量。在帕累托图中显示数据,并在 xy 轴上添加标签。

x = datetime(2018,5,1:5,'Format','d MMM');
y = [100 526 221 60 49];
pareto(y,x)
xlabel('Manufacturing Date')
ylabel('Defects')

Figure contains 2 axes objects. Axes object 1 with xlabel Manufacturing Date, ylabel Defects contains 2 objects of type bar, line. Axes object 2 is empty.

y 定义为一个包含五个数字的向量,并创建一个帕累托图。指定返回参数,以便自定义图和坐标区的各个方面。

y = [20 30 10 55 5];
[charts, ax] = pareto(y);

Figure contains 2 axes objects. Axes object 1 contains 2 objects of type bar, line. Axes object 2 is empty.

使用 charts 数组更改 BarLine 对象的颜色。charts 中的第一个元素是 Bar 对象,第二个元素是 Line 对象。将条形颜色更改为紫色,将线条颜色更改为绿色。

charts(1).FaceColor = [0.50  0.37  0.60];
charts(2).Color = [0 0.50 0.10];

Figure contains 2 axes objects. Axes object 1 contains 2 objects of type bar, line. Axes object 2 is empty.

接下来,更改左 y 轴的颜色以匹配条形,更改右 y 轴的颜色以匹配线条。左侧的 Axes 对象是 ax 数组的第一个元素。另一个 Axes 对象位于 ax 数组的第二个元素中。

在更改颜色后,显示坐标区网格线。

ax(1).YColor = [0.50 0.37 0.60];
ax(2).YColor = [0 0.50 0.10];
grid on

Figure contains 2 axes objects. Axes object 1 contains 2 objects of type bar, line. Axes object 2 is empty.

要在一个图窗中创建多个图,请使用分块图布局。调用 nexttile 函数以在分块图布局中创建一个坐标区对象。如果没有可用的布局,nexttile 会创建一个布局。通过将坐标区作为第一个参数传递给 pareto 函数来创建一个帕累托图。

ax1 = nexttile;
pareto(ax1,[20 50 33 12])

Figure contains 2 axes objects. Axes object 1 contains 2 objects of type bar, line. Axes object 2 is empty.

调用 nexttile 函数以向布局中添加第二个坐标区对象。然后创建第二个帕累托图。

ax2 = nexttile;
pareto(ax2,[50 10 20 25 30])

Figure contains 4 axes objects. Axes object 1 contains 2 objects of type bar, line. Axes object 2 is empty. Axes object 3 contains 2 objects of type bar, line. Axes object 4 is empty.

输入参数

全部折叠

y 坐标,即条形高度,指定为由有限非负数值组成的向量。

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

x 坐标,即条形标签,指定为与 y 长度相同的向量。该向量中的值可以是有限的非负数值、日期时间值、持续时间值或分类值。

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

图中要包含的累积分布的比例,指定为 01 之间的数字。

pareto 以降序显示对累积分布有贡献的条形,直到正好超过阈值,最多显示 10 个条形。

示例: pareto([70 15 10 5],0.75) 显示占累积分布 75% 的最高的若干个条形。

示例: pareto([70 15 10 5],0.85) 显示占累积分布 85% 的最高的若干个条形。

示例: pareto([70 15 10 5],1) 显示所有条形,因为 y 的长度小于 10。

示例: pareto(1:11,1) 仅显示最高的 10 个条形,因为 y 的长度大于 10。

目标坐标区,指定为 Axes 对象。如果不指定坐标区,且当前坐标区是笛卡尔坐标区,pareto 将使用当前坐标区。

扩展功能

版本历史记录

在 R2006a 之前推出

另请参阅

函数

属性