1.偏移占比最大的饼图扇区
此示例演示如何创建饼图并自动偏移占比最大的饼图扇区。
建立一个三列数组 X
,每一列包含一个特定产品为期 5 年的年销售数据。
X = [19.3, 22.1, 51.6
34.2, 70.3, 82.4
61.4, 82.9, 90.8
50.5, 54.9, 59.1
29.4, 36.3, 47.0];
通过对每列求和计算出每个产品 5 年的总销售额。将结果保存到 product_totals
。
product_totals = sum(X);
使用 max
函数找出
product_totals
中的最大元素并返回该元素的索引
ind
。
[c,ind] = max(product_totals);
使用 pie
函数的输入参数
explode
偏移一个饼图扇区。
explode 参数是一个由零和非零值组成的向量,其中非零值表示要偏移的扇区。将
explode
初始化为一个由零组成的三元素向量。
explode = zeros(1,3);
使用 product_totals
中最大元素的索引将对应的
explode
元素设为 1。
explode(ind) = 1;
创建包含每个产品销售总额的饼图,并偏移具有最大销售总额的产品所在的饼图扇区。
figure
pie(product_totals,explode)
title('Sales Contributions of Three Products')
2.向饼图添加图例
此示例演示如何向饼图添加显示每个扇区说明的图例。 定义
x
并创建一个饼图。
x = [1,2,3];
figure
pie(x)
在元胞数组 labels
中指定每个饼图扇区的说明。按照您在
x
中指定数据的顺序指定说明。
labels = {'Product A','Product B','Product C'};
在饼图下方显示水平图例。将包含在 labels
中的说明传递给
legend
函数。将图例的
Location 属性设置为
'southoutside'
,并将其
Orientation
属性设置为
'horizontal'
。
legend(labels,'Location','southoutside','Orientation','horizontal')
3.为饼图添加文本和百分比标签
创建饼图时,MATLAB 会用各个扇区在整个饼图中所占的百分比来标记每个扇区。您可以更改标签以显示不同的文本。
3.1简单的文本标签
创建带有简单文本标签的饼图。
x = [1,2,3];
pie(x,{'Item A','Item B','Item C'})
3.2带百分比和文本的标签
创建带有标签的饼图,标签上包含每个扇区的自定义文本和预先计算的百分比值。创建饼图并指定输出参数 p,以包含由
pie
函数创建的文本和补片对象。
pie
函数为每个饼图扇区创建一
个文本对象和一个补片对象。
x = [1,2,3];
p = pie(x);
从文本对象的 String
属性获取每个饼图扇区的占比百分比值。然后,在元胞数组
txt 中指定所需的文本。将此文本与元胞数组
combinedtxt
中的相应百分比值串联起来。
pText = findobj(p,'Type','text');
percentValues = get(pText,'String');
txt = {'Item A: ';'Item B: ';'Item C: '};
combinedtxt = strcat(txt,percentValues);
通过将文本对象的 String
属性设置为
combinedtxt
来更改标签。
pText(1).String = combinedtxt(1);
pText(2).String = combinedtxt(2);
pText(3).String = combinedtxt(3);