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.

 Respuesta aceptada

Fangjun Jiang
Fangjun Jiang el 13 de Ag. de 2011

1 voto

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 comentarios

Jason
Jason el 13 de Ag. de 2011
Hi, is it possible to list down the actual percentage value for data in each container?
Jason
Jason el 13 de Ag. de 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 el 13 de Ag. de 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 el 13 de Ag. de 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 el 13 de Ag. de 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 el 13 de Ag. de 2011
Thanks, Walter.

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Preguntada:

el 13 de Ag. de 2011

Community Treasure Hunt

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

Start Hunting!

Translated by