Selecting categorical variable range to plot on bar graph

17 次查看(过去 30 天)
I don't understand why the categorical data is shown in its entirety on the graph despite only a portion of it being selected.
Am I indexing it wrongly?
C = categorical({'A'; 'B'; 'C'; 'D'; 'E'; 'F'});
N = [5 4 2 3 4 8];
bar(C(3:end), N(3:end))
  2 个评论
Siddharth Bhutiya
Siddharth Bhutiya 2021-10-4
When you create a cateogorical array, you specify the list of categories. That list now becomes a property of the categorical object. Taking a subset of the array using indexing would not update that list. If you want to add/remove a category from your array then you would have to use something like addcats/removecats.
>> C = categorical({'A'; 'B'; 'C'; 'D'; 'E'; 'F'});
>> categories(C)
ans =
6×1 cell array
{'A'}
{'B'}
{'C'}
{'D'}
{'E'}
{'F'}
>> C1 = C(3:end)
C1 =
4×1 categorical array
C
D
E
F
>> categories(C1)
ans =
6×1 cell array
{'A'}
{'B'}
{'C'}
{'D'}
{'E'}
{'F'}
Nex
Nex 2021-10-4
Thank you very much for the clear explanation and suggestion of a solution.

请先登录,再进行评论。

采纳的回答

VBBV
VBBV 2021-9-29
C = categorical({'A'; 'B'; 'C'; 'D'; 'E'; 'F'});
N = [5 4 2 3 4 8];
bar(C(3:end), N(3:end))
xticks(C(3:end))
xticklabels(C(3:end))
Use Xticks & Xticklabels

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Categorical Arrays 的更多信息

产品


版本

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by