Plotting histogram question ?

How do I plot the histogram of a set of data values in terms of percentage of cumulative frequency? Something like, I want the range to be from 0 to 100%, not from 0 to total number of data.
I am not sure if I made myself understood. Please do ask for details if you need any.

 Réponse acceptée

Fangjun Jiang
Fangjun Jiang le 13 Août 2011

1 vote

a=rand(100,1);
a(a>=0.7)=1;
a(a<=0.2)=2;
a(a<0.7 & a>0.2)=3;
figure(1);n=hist(a(:),0:5);
percent=n/sum(n);
figure(2);bar(0:5,percent);

6 commentaires

Jason
Jason le 13 Août 2011
Hi, is it possible to list down the actual percentage value for data in each container?
Jason
Jason le 13 Août 2011
I actually have to plot this for all the values within a 4-D cell array. There are 59,500 values in total, I need to know the cumulative frequency of those values. Maybe I need to use 'cumsum'?
Fangjun Jiang
Fangjun Jiang le 13 Août 2011
a=rand(2,3,4,5);
figure(1);hist(a(:),0:0.1:1);
n=hist(a(:),0:0.1:1);
figure(2);bar(0:0.1:1,n/sum(n));
Jason
Jason le 13 Août 2011
What am I thinking, the answer is clearly in the code you wrote. Sorry, my mind is so cluttered right now. Thanks for the help though, very much appreciated.
Walter Roberson
Walter Roberson le 13 Août 2011
Warning: the logic used above will fail if there are no values to be histogrammed. sum(n) would be 0 and you would get 0/0 . Be safe, program defensively!
Jason
Jason le 13 Août 2011
Thanks, Walter.

Connectez-vous pour commenter.

Plus de réponses (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by