# How to reorder a categorical axis?

96 visualizzazioni (ultimi 30 giorni)
Zhe Dong il 14 Mar 2023
Modificato: Zhe Dong il 15 Mar 2023
I am ploting a set of values aginst an categorical array, however the the categorical axis always appears in the alphabetical order, how can I control the order it appears?
here's an example
x = categorical({'a','b','c','d','e'});
y = [1:5];
scatter(x,y);
how do I plot y aginst x so the x-axis appears in a non-alphabetical order, like b-e-d-a-c.
thanks!
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Risposta accettata

Dave B il 14 Mar 2023
Modificato: Dave B il 14 Mar 2023
Three options to change the order, depending on where you want to change it:
Option 1: You can use reordercats to re-order the categories:
x = categorical({'a','b','c','d','e'});
y = 1:5;
orderedx = reordercats(x,{'b' 'e' 'd' 'a' 'c'});
scatter(orderedx ,y);
Or you can pass in the order as an input to categorical:
x = categorical({'a','b','c','d','e'}, {'b' 'e' 'd' 'a' 'c'});
y = 1:5;
scatter(x,y);
Or you can change the order on the axes using the Categories property of the CategoricalRuler:
x = categorical({'a','b','c','d','e'});
y = 1:5;
scatter(x,y);
xaxis=get(gca,'XAxis');
xaxis.Categories={'b' 'e' 'd' 'a' 'c'};
##### 2 CommentiMostra NessunoNascondi Nessuno
VBBV il 15 Mar 2023
Modificato: VBBV il 15 Mar 2023
% Fourth option is you can use find to get indices for array and pass it to
% xticklabels
x = categorical({'a','b','c','d','e'});
new_x = {'b','e','d','a','c'};
for k = 1:length(x)
idx(k) = find(new_x(k) == x);
end
y = 1:5;
scatter(x,y(idx));
xticklabels(x(idx))
% strange output using scatter
x(idx)
ans = 1×5 categorical array
b e d a c
% even though idx values are substituted, when i use it scatter function
% it still retains old order
scatter(x(idx),y(idx))
Zhe Dong il 15 Mar 2023
Many thanks, it helps!

Accedi per commentare.

### Categorie

Scopri di più su Annotations in Help Center e File Exchange

R2021a

### Community Treasure Hunt

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

Start Hunting!

Translated by