我是MATLAB的新手。我想制作一个包含分类数据的数据集的饼图:
? 1836
Federal-gov 960
Local-gov 2093
Never-worked 7
Private 22696
Self-emp-inc 1116
Self-emp-not-inc 2541
State-gov 1297
Without-pay 14
我导入了大小为32561x1的数据集,并使用以下方法将其转换为分类数据:
w = categorical(w)
现在当我在matlab中使用pie命令时:
pie(w)
它给了我以下错误:
Undefined function 'isfinite' for input arguments of type 'cell'.
Error in pie (line 34)
if ~all(isfinite(x))
我不明白我的数据集对于这个饼图来说太大了?我该怎么做才能为这个大的分类数据生成一个饼图?
提前致谢。
答案 0 :(得分:3)
2014a 中的分类数据类型现在没有支持(通常是由于新颖性)。在较新版本中,您可以直接将分类数组传递给pie
。在 2014a 传递类别计数将起作用,就像任何数字数组一样。使用countcats
函数很简单。虽然categories
函数可以将类别名称作为字符串返回以用于标记。
使用David在评论中提供的测试用例
A={'first' 'second' 'third' 'fourth' 'fifth'};
B=randi(5,20,1);
C={A{B}}.'; %'
C=categorical(C);
你可以打电话
pie(countcats(C))
并包含标签:
pie(countcats(C),categories(C))