首页 > 解决方案 > 在 Matlab 中以 Rational 格式打印饼图百分比

问题描述

在 Matlab 饼图中,在分类数据中,结果以百分比格式打印。有没有办法以合理的形式改变这种格式?例如,代替一组 12 个数据中的 50%,改为打印 6/12。在工作区中长时间键入格式并不能解决此问题。

更好的是,我们可以写出两个结果,即 50% (6/12)。

工作示例:

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

饼形图

标签: matlabplotmatlab-figurepie-chart

解决方案


您可以使用countcats来获取出现次数并手动制作标签:

N = numel(X);         % total number of items
n = countcats(X);     % number of items per category
cats = categories(X); % unique categories in same order as countcats
labels = arrayfun( @(ii) sprintf('%s (%.0f/%.0f)', cats{ii}, n(ii), N), ...
                   1:numel(n), 'uni', 0 );

然后制作你的饼图

pie(n, labels)

推荐阅读