How to sort data in a bar plot based on its values on Y-axis?
조회 수: 23 (최근 30일)
이전 댓글 표시
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.

댓글 수: 0
채택된 답변
Star Strider
2023년 2월 26일
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
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Shifting and Sorting Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

