Cómo construir histogramas de anchura desigual con Matlab?
Pregunta
Me gustaría construir un histograma con los compartimientos desiguales (intervalos) .. Matlab constructo solamente histogramas con igualdad de contenedores como si es un diagrama .. !!!
Por favor, ayúdame ... muchas gracias !!
Solución
Este es un ejemplo:
x = randn(100,1)*3; %# some random data
e = [-10 -5 -3 -1 1 2 3 20]; %# edges of intervals: e(i) <= x < end(i+1)
c = histc(x,e); %# get count in each interval
bar(e, c, 'histc') %# bar plot
set(gca, 'xlim',[e(1) e(end)])
Otros consejos
Se puede construir su propia herramienta de histograma para crear un histograma a medida que lo desee.
-
Uso histc para determinar qué contenedores cada punto cae dentro.
-
A continuación, utilice accumArray para contar el número de elementos en cada bin.
-
A continuación, barra de uso para dibujar las barras de sus anchos elegidos. O simplemente crear Los parches de los tamaños dados. El uso de parches para eso.
O, más simplemente, el uso justo hist.
hist(rand(1000,1),[0 .1 .3 .6 1])