Question

Je voudrais construire un histogramme avec des bacs inégales (intervalles) .. Matlab construire seulement avec bacs égaux histogrammes comme si elle est un diagramme .. !!!

S'il vous plaît aidez-moi ... merci beaucoup !!

Était-ce utile?

La solution

Voici un exemple:

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)])

sortie

Autres conseils

2 solutions:

  1. Spécifiez bin centres avec le 2ème argument hist .
  2. Spécifiez bin Arêtes avec des le 2ème argument histc . Cette fonction prend un peu plus le traitement car il ne générer directement le graphique - suivre le lien pour un exemple d'utilisation.

Vous pouvez construire votre propre outil d'histogramme pour créer un histogramme personnalisé que vous le souhaitez.

  • Utilisez histc pour déterminer quels bacs chaque point se trouve à l'intérieur.

  • Utilisez ensuite accumArray pour compter le nombre d'éléments dans chaque bac.

  • Utilisez ensuite pour tirer des barres de vos largeurs choisies. Ou tout simplement créer patches des tailles données. patch utilisation pour cela.

Ou plus simplement, il suffit d'utiliser hist.

hist(rand(1000,1),[0 .1 .3 .6 1])
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top