Python: Histogramme de la zone normalisée à autre chose que 1
Est-il un moyen de dire matplotlib pour "normaliser" un histogramme de telle sorte que son aire est égale à une valeur spécifiée (autre que 1)?
L'option "normé = 0" dans
n, bins, patches = plt.hist(x, 50, normed=0, histtype='stepfilled')
juste ramène à une distribution de fréquence.
OriginalL'auteur Pawin | 2012-01-27
Vous devez vous connecter pour publier un commentaire.
Viens de calculer et de normaliser n'importe quelle valeur que vous souhaitez, puis utiliser
bar
pour tracer l'histogramme.Sur une note de côté, cela permettra de normaliser les choses telles que le zone de tous les bars est
normed_value
. Les premières somme pas êtrenormed_value
(même si il est facile d'être le cas, si vous le souhaitez).E. g.
Donc, dans ce cas, si nous étions à intégrer (somme de la hauteur multipliée par la largeur) les poubelles, et nous aurions 2.0 au lieu de 1.0. (c'est à dire
(hist * widths).sum()
donnera2.0
)OriginalL'auteur Joe Kington
Vous pouvez passer une
weights
argumenthist
au lieu d'utilisernormed
. Par exemple, si vos bacs de couvrir l'intervalle[minval, maxval]
, vous avezn
bacs, et que vous voulez normaliser le domaine deA
, alors je pense quedevrait faire l'affaire.
EDIT: Le
weights
argument doit être de la même taille quex
, et son effet est de faire de chaque valeur de x contribuer à la valeur correspondante dansweights
vers la corbeille de compter, au lieu de 1.Je pense que le
hist
fonction pourrait probablement le faire avec une plus grande capacité de contrôle de la normalisation. Par exemple, je pense qu'elle se trouve, les valeurs à l'extérieur de la jetée plage sont ignorées lors de la normalisation, ce qui n'est généralement pas ce que vous voulez.OriginalL'auteur James