put bars in bar graph in ascending order?
Show older comments
i want to put this in order from smallest to largest population instead of alphabetical order. How can I do this?
clc
clear all
close all
%reading the file
[numbers text]=xlsread('homelesspopinamerica.xlsx');
%manipulating withthe data and storing it at our convenience
statenames=text(2:51,1:2);
pop=numbers(1:50,:);
states=statenames(:,2);
state=statenames(:,2);
homepop=pop(:,2);
homeperc=pop(:,4);
totpop=pop(:,3);
states=categorical(states);
%plotting
figure
bar(states,homepop)
xlabel('States', 'Fontsize', 18)
ylabel('Numer of Homeless Persons (Millions)', 'Fontsize', 18)
title('HOMELESSNESS IN AMERICA 2017', 'fontsize', 24);
set(gcf,'color','w');
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
%turn on grid lines
set(gca,'XGrid','off')
set(gca,'YGrid','on')
Accepted Answer
More Answers (1)
Sandro Lecci
on 7 Jun 2018
Hi,
Use the sort function as following:
...
homepop = pop(:,2);
[~, I] = sort(homepop, 'ascend');
% remove/comment this line --> states = categorical(states);
...
bar(homepop(I));
set(gca, 'XTickLabel', states(I))
...
Best, Sandro
5 Comments
Minka Califf
on 7 Jun 2018
Sandro Lecci
on 7 Jun 2018
please post the updated code and the error message as well
Minka Califf
on 7 Jun 2018
Walter Roberson
on 7 Jun 2018
Since states is no longer categorical, then at the time of your call to bar(states, homepop) then states is still a cell array of character vectors, which is not accepted.
I suggest you look at the answer I posted on how to get any sorting order you want for categorical.
Sandro Lecci
on 8 Jun 2018
Minka, I am not surprised it gives an error.
In the code you simply copied-pasted my section without checking for redundancies. I thought it was somehow clear that you should have replaced the line with the bar function instead of plotting it once as I proposed and then plot it again in your old version. I also re-wrote some of your lines to help you understand where to apply the changes, but it seems you did not get it..
I am glad you found a way to solve your problem. Best
Categories
Find more on 2-D and 3-D Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!