Matlab饼图绘制函数pie用法大全

4.7
(3)

今天,带来Matlab中绘制饼图的函数pie的使用方法,饼图将将数据分割,然后每一块以一个扇形显示并绘图,并且可以分割这些扇形显示。这种饼图,看起来非常直观,也是数据统计中常用的绘图方法。

本文,主要介绍pie函数的常见用法、语法说明、创建带偏移扇区的饼图、指定饼图的文本标签、修改饼图的文本标签、指定百分比标签的格式、绘制部分饼图、比较两个饼图、绘制具有偏移的分类饼图、使用标签绘制分类饼图等方面的介绍。

Matlab饼图绘制函数pie用法大全

下面我们将开始非常详细的 Matlab pie 函数语法介绍,实例引用,结果展示。首先,我们给出 Matlab 中关于 pie 函数的帮助文本如下:

>> help pie
 pie    Pie chart.
    pie(X) draws a pie plot of the data in the vector X.  The values in X
    are normalized via X/SUM(X) to determine the area of each slice of pie.
    If SUM(X) <= 1.0, the values in X directly specify the area of the pie
    slices.  Only a partial pie will be drawn if SUM(X) < 1.
 
    pie(X,EXPLODE) is used to specify slices that should be pulled out from
    the pie.  The vector EXPLODE must be the same size as X. The slices
    where EXPLODE is non-zero will be pulled out.
 
    pie(...,LABELS) is used to label each pie slice with cell array LABELS.
    LABELS must be a cell array of strings the same size as X.
 
    pie(AX,...) plots into AX instead of GCA.
 
    H = pie(...) returns a vector containing patch and text handles.
 
    Example
       pie([2 4 3 5],{'North','South','East','West'})

常见用法

pie(X)
pie(X,explode)
pie(X,labels)
pie(X,explode,labels)
pie(ax,___)
p = pie(___)

语法说明

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

  • 如果 sum(X) ≤ 1,X 中的值直接指定饼图扇区的面积。如果 sum(X) < 1,pie 仅绘制部分饼图。
  • 如果 sum(X) > 1,则 pie 通过 X/sum(X) 对值进行归一化,以确定饼图的每个扇区的面积。
  • 如果 X 为 categorical 数据类型,则扇区对应于类别。每个扇区的面积是类别中的元素数除以 X 中的元素数的结果。

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

如果 X 为 categorical 数据类型,则 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)
Matlab饼图绘制函数pie用法大全

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

explode = [0 1 0 1 0];
pie(X,explode)
Matlab饼图绘制函数pie用法大全

指定饼图的文本标签

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

X = 1:3;
labels = {'Taxes','Expenses','Profit'};
pie(X,labels)
Matlab饼图绘制函数pie用法大全

修改饼图的文本标签

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

X = 1:3;
labels = {'Taxes','Expenses','Profit'};
p = pie(X,labels)
Matlab饼图绘制函数pie用法大全

输出结果为:

p = 

  1x6 graphics 数组:

    Patch    Text     Patch    Text     Patch    Text 

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

t = p(6);
t.BackgroundColor = 'cyan';
t.EdgeColor = 'red';
t.FontSize = 14;
Matlab饼图绘制函数pie用法大全

指定百分比标签的格式

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

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

我这里Matlab2016会直接报错,不过,直接去掉后面引号内容即可。(Matlab2016无此功能,要求X的元素个数与explode一致)。报错结果如下:

错误使用 pie (line 93)
X 和 EXPLODE 的长度必须相同。

出错 ppplot (line 4)
pie(X,'%.3f%%')

下面,我们以2016中的方式写出来即可:

X = [1/3 2/3];
pie(X)
Matlab饼图绘制函数pie用法大全

绘制部分饼图

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

X = [0.19 0.22 0.41];
pie(X)
Matlab饼图绘制函数pie用法大全

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

比较两个饼图

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

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

创建一个 2×1 分块图布局,并在第一个图块中显示 y2010 数据的饼图和图例。然后在第二个图块中显示 y2011 数据的饼图和图例。

t = tiledlayout(2,1);
ax1 = nexttile;
pie(ax1,y2010)
legend(labels)
title('2010')

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

Matlab2016中不存在nexttile和tiledlayout函数,下面我们用subplot来描绘这种两个饼图的对比吧。代码如下:

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

subplot(2,1,1)
pie(y2010)
legend(labels)
title('2010')

subplot(2,1,2)
pie(y2011)
legend(labels)
title('2011')
Matlab饼图绘制函数pie用法大全

值得一提的是,Matlab2016中,不允许有0元素的存在,而在高版本无此限制。

绘制具有偏移的分类饼图

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

X = categorical({'North','South','North','East','South','West'});
explode = {'North'};
pie(X,explode)
Matlab饼图绘制函数pie用法大全

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

explode = [0 1 1 0];
pie(X,explode)
Matlab饼图绘制函数pie用法大全

使用标签绘制分类饼图

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

X = categorical({'North','South','North','East','South','West'});
explode = {};
labels = {'E','N','S','W'};
pie(X,explode,labels)
Matlab饼图绘制函数pie用法大全

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

X = categorical({'North','South','North','East','South','West'});
explode = {'West'};
labels = {'E','N','S','W'};
pie(X,explode,labels)
Matlab饼图绘制函数pie用法大全

共计3人评分,平均4.7

到目前为止还没有投票~

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

本文来自转载,原文出处:MathWorks官网,由古哥整理发布

如若转载,请注明出处:https://iymark.com/program/matlab-data-function-pie.html

发表评论

登录后才能评论
分享本页
返回顶部