How to sort data in a bar plot based on its values on Y-axis?

16 visualizaciones (últimos 30 días)
Hi there,
I am working on a bar graph as shown below.
I would like to sort them 'descending' so that LS713A (the highest) is plotted at the left and then CH12B, CH202A, SC762B and SC748A (the lowest) respectively.
I tried to use reordercats but it does not work. Could you please give some example(s)?
Thank you and best regards.

Respuesta aceptada

Star Strider
Star Strider el 26 de Feb. de 2023
I assume the x-data are categorical, because otherwise this is straightforward.
Perhaps this —
x = 1:5;
y = rand(1,5);
xlbl = categorical(["A","B","C","D","E"]);
figure
bar(xlbl,y)
title('Original')
Ax = gca;
% get(Ax)
xv = Ax.Children.XData;
yv = Ax.Children.YData;
[~,idx] = sort(yv, 'descend');
xv = reordercats(xv, idx);
figure
bar(xv(idx), yv(idx))
title('Sorted')
.
  2 comentarios
Chutiphon Moranon
Chutiphon Moranon el 1 de Mzo. de 2023
Hi Star Strider. Thank you for your reply. Much appreicate.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Shifting and Sorting Matrices en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by