Como construir histogramas de largura desigual com MATLAB?
Pergunta
Eu gostaria de construir um histograma com caixas desiguais (intervalos) .. Construção do matlab apenas histogramas com caixas iguais como se fosse um diagrama .. !!!
Por favor me ajude ... muito obrigado !!
Solução
Aqui está um exemplo:
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)])
Outras dicas
Você pode criar sua própria ferramenta de histograma para criar um histograma personalizado como desejar.
Use o histc para determinar quais caixas cada ponto cai dentro.
Em seguida, use Accumarray para contar o número de elementos em cada compartimento.
Em seguida, use a barra para desenhar barras de suas larguras escolhidas. Ou simplesmente criar patches dos tamanhos especificados. Use patch para isso.
Ou, mais simplesmente, basta usar o Hist.
hist(rand(1000,1),[0 .1 .3 .6 1])
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow