46 votes

pylab.hist(données, normée=1). La normalisation semble fonctionner incorrectement

J'essaye de créer un histogramme avec l'argument normed=1

Par exemple:

 import pylab

data = ([1,1,2,3,3,3,3,3,4,5.1])    
pylab.hist(data, normed=1)
pylab.show()

Je m'attendais à ce que la somme des bacs soit 1. Mais à la place, l'un des bacs est plus grand que 1. Qu'est-ce que cette normalisation a fait ? Et comment créer un histogramme avec une normalisation telle que l'intégrale de l'histogramme serait égale à 1 ?

entrez la description de l'image ici

63voto

Carsten König Points 2959

Voir mon autre article pour savoir comment faire en sorte que la somme de tous les bacs d'un histogramme soit égale à un : https://stackoverflow.com/a/16399202/1542814

Copier coller:

 weights = np.ones_like(myarray)/float(len(myarray))
plt.hist(myarray, weights=weights)

où myarray contient vos données

9voto

juanchopanza Points 115680

Je pense que vous confondez les hauteurs des bacs avec le contenu des bacs. Vous devez ajouter le contenu de chaque casier, c'est-à-dire hauteur*largeur pour tous les casiers. Cela devrait = 1.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X