Main Content

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

pie

原有饼图

  • 3-D pie chart

说明

示例

注意

推荐使用 piechart 而不是 pie,因为它使您能够创建 PieChart 对象,从而提供更多自定义选项。例如,PieChart 对象具有更改切片颜色、切片在圆周围的排列(顺时针或逆时针)以及第一个切片的位置的属性。 (自 R2023b 起)

pie(X) 使用 X 中的数据绘制饼图。饼图的每个扇区代表 X 中的一个元素。

  • 如果 sum(X) ≤ 1X 中的值直接指定饼图扇区的面积。如果 sum(X) < 1pie 仅绘制部分饼图。

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

  • 如果 Xcategorical 数据类型,则扇区对应于类别。每个扇区的面积是类别中的元素数除以 X 中的元素数的结果。

示例

pie(X,explode) 将扇区从饼图偏移一定位置。explode 是一个由与 X 对应的零值和非零值组成的向量或矩阵。pie 函数仅将对应于 explode 中的非零元素的扇区偏移一定的位置。

如果 Xcategorical 数据类型,则 explode 可以是由对应于类别的零值和非零值组成的向量,或者是由要偏移的类别名称组成的元胞数组。

示例

pie(X,labels) 指定用于标注饼图扇区的选项。在本例中,X 必须为数值。

示例

pie(X,explode,labels) 偏移扇区并指定文本标签。X 可以是数值或分类数据类型。

示例

pie(ax,___) 将图形绘制到 ax 指定的坐标区中,而不是当前坐标区 (gca) 中。选项 ax 可以位于上述语法中的任何输入参量组合之前。

示例

p = pie(___) 返回一个由补片和文本图形对象组成的向量。该输入可以是上述语法中的任意输入参量组合。

示例

全部折叠

创建向量 X 的饼图。

X = [1 3 0.5 2.5 2];
pie(X)

通过将对应的 explode 元素设置为 1 来偏移第二和第四块饼图扇区。

explode = [0 1 0 1 0];
pie(X,explode)

创建向量 X 的饼图并标记扇区。

X = 1:3;
labels = {'Taxes','Expenses','Profit'};
pie(X,labels)

创建一个标签饼图,然后修改文件标签的颜色和字体大小。

X = 1:3;
labels = {'Taxes','Expenses','Profit'};
p = pie(X,labels)

p = 
  1x6 graphics array:

    Patch    Text     Patch    Text     Patch    Text 

获取标签“Profit”的文本对象。更改其颜色和字体大小。使用圆点表示法设置属性。

t = p(6);
t.BackgroundColor = 'cyan';
t.EdgeColor = 'red';
t.FontSize = 14;

创建一个饼图,并指定格式表达式以使每个标签显示小数点后三位数。要在标签中包含百分号,请在表达式末尾指定 '%%'

X = [1/3 2/3];
pie(X,'%.3f%%')

创建一个由向量 X 组成的饼图,其中各个元素之和小于 1。

X = [0.19 0.22 0.41];
pie(X)

由于元素的总和小于 1,因此 pie 绘制部分饼图。

创建包含两年财务数据的向量 y2010y2011。然后创建一个包含值标签的元胞数组。

y2010 = [50 0 100 95];
y2011 = [65 22 97 120];
labels = {'Investments','Cash','Operations','Sales'};

创建一个 1×2 分块图布局,并显示两个饼图,每个饼图都有一个标题。然后在布局的东侧图块中显示一个共享图例。为此,请使用返回参量调用 legend 函数来存储图例对象。然后通过将 Layout.Tile 属性设置为 'east',将图例移至 east 图块。

t = tiledlayout(1,2,'TileSpacing','compact');

% Create pie charts
ax1 = nexttile;
pie(ax1,y2010)
title('2010')

ax2 = nexttile;
pie(ax2,y2011)
title('2011')

% Create legend
lgd = legend(labels);
lgd.Layout.Tile = 'east';

绘制一个分类饼图,其中的偏移扇区与类别相对应。

X = categorical({'North','South','North','East','South','West'});
explode = {'North','South'};
pie(X,explode)

现在,使用逻辑向量将相同扇区偏移一定位置。

explode = [0 1 1 0];
pie(X,explode)

绘制一个不包含任何偏移扇区的分类饼图并标记扇区。当 Xcategorical 数据类型时,必须指定输入参量 explode。要指定不包含任何偏移扇区的标签,请将 explode 指定为一个空数组,将 labels 指定为标签。

X = categorical({'North','South','North','East','South','West'});
explode = {};
labels = {'E','N','S','W'};
pie(X,explode,labels)

现在,将扇区偏移一定位置并标记所有扇区。

X = categorical({'North','South','North','East','South','West'});
explode = {'West'};
labels = {'E','N','S','W'};
pie(X,explode,labels)

输入参数

全部折叠

输入向量或矩阵。

  • 如果 X 为数值,则 X 中的所有值必须为有限值。

  • 如果 X 是分类数组,则 pie 将忽略未定义的元素。

数据类型: double|categorical

偏移扇区,指定为数值向量或矩阵、逻辑向量或矩阵、字符串数组或字符向量元胞数组。

  • 如果 X 为数值,则 explode 必须是逻辑向量或数值向量,或由对应于 X 的零或非零值组成的矩阵。一个真(非零)值从饼图中心将相应的扇区偏移一定位置,这样如果 explode(i,j) 是非零值,则 X(i,j) 将从中心偏移。explodeX 的大小必须相同。

  • 如果 X 是分类数组,则 explode 可以是类别名称的字符串数组或元胞数组。pie 偏移对应于 explode 中类别的扇区。

  • 如果 X 是分类数组,explode 也可以是逻辑向量或数值向量,其中包含与 X 中的每个类别对应的元素。pie 函数按类别顺序将对应于 true(非零)的扇区偏移一定的位置。

标签选项,指定为文本标签数组或格式表达式。使用此参量显示饼图扇区的自定义文本标签,或显示 MATLAB® 以特定格式提供的百分比值。

注意

要在 X 包含分类值时指定标签选项,您必须在标签选项前指定 explode 参量。

显示文本标签

将标签指定为字符向量元胞数组或字符串数组。

X 包含数值时,labels 中的元素数必须等于 X 中的元素数。

X 包含分类值时,labels 中元素的数量和顺序必须等同于 X 中类别的数量和顺序。要确定类别的数量和顺序,请使用 categories 函数。

以特定格式显示百分比

将格式表达式指定为字符向量或字符串标量。格式表达式以百分比符号 (%) 开头,后跟一系列标识符。

Example of a custom format.

除转换字符外,所有标识符均为可选项。按以下顺序指定标识符:

  1. 一个或多个标志 - 用于显示加号、小数点和调整标签的选项。

    • 加号 (+) - 在正值旁边显示加号。

    • 井号 (#) - 显示小数点,即使精度为 0 也是如此,例如 '50.'

    • 减号 () - 左对齐标签,并用空格填充标签的末尾,而不是在开头用空格填充。

  2. 字段宽度 - 标签中要显示的最小字符数。请将字段宽度指定为整数值。如果标签中的位数小于字段宽度,则在标签上用空格填充。

  3. 精度 - 小数点右侧的位数。将精度指定为小数点后跟一个整数值。

  4. 转换字符 - 定点或指数记数法。有关转换字符的列表,请参阅下表。如果您指定的转换字符不适合数据,MATLAB 将改用 %e

转换字符描述示例
f定点记数法。精度值指示小数位数。'%.4f%%' 将占饼图 6.25% 的扇区的标签显示为 6.2500%
e指数记数法。精度值指示小数位数。'%.4e%%' 将占饼图 6.25% 的扇区的标签显示为 6.2500e+00%
g更精简版本的 ef,不带尾随零。精度值指示最大小数位数。'%.4g%%' 将占饼图 6.25% 的扇区的标签显示为 6.25%

除了上面列出的标识符,您还可以在格式表达式的开头或末尾指定字面文本。要显示单引号,请使用 ''。要显示百分比符号,请使用 %%。例如,'%.2f%%' 显示带两个尾部小数位并后跟一个百分比符号的标签。

坐标区对象。使用 ax 在特定的坐标区而不是当前坐标区 (gca) 中绘制该饼图。

输出参量

全部折叠

PatchText 对象,以向量形式返回。有关详细信息,请参阅 Patch 属性Text 属性

扩展功能

版本历史记录

在 R2006a 之前推出

全部展开