Un bin est une plage qui représente la largeur d'une seule barre de l'histogramme le long de l'axe des X. On pourrait aussi appeler cela l'intervalle. (Wikipedia les définit plus formellement comme des "catégories disjointes").
Le Numpy histogram
ne dessine pas l'histogramme, mais elle calcule les occurrences des données d'entrée qui se trouvent dans chaque case, ce qui détermine la surface (pas nécessairement la hauteur si les cases ne sont pas de largeur égale) de chaque barre.
Dans cet exemple :
np.histogram([1, 2, 1], bins=[0, 1, 2, 3])
Il y a 3 bacs, pour des valeurs allant de 0 à 1 (excl. 1.), 1 à 2 (excl. 2) et 2 à 3 (incl. 3), respectivement. La façon dont Numpy définit ces intervalles est en donnant une liste de délimiteurs ( [0, 1, 2, 3]
) dans cet exemple, bien qu'il renvoie également les bacs dans les résultats, puisqu'il peut les choisir automatiquement à partir de l'entrée, si aucun n'est spécifié. Si bins=5
Par exemple, il utilisera 5 cases de largeur égale réparties entre la valeur d'entrée minimale et la valeur d'entrée maximale.
Les valeurs d'entrée sont 1, 2 et 1. Par conséquent, l'emplacement "1 à 2" contient deux occurrences (les deux valeurs "1 à 2"). 1
), et l'emplacement "2 à 3" contient une occurrence (la valeur 2
). Ces résultats se trouvent dans le premier élément du tuple retourné : array([0, 2, 1])
.
Puisque les bacs sont de largeur égale, vous pouvez utiliser le nombre d'occurrences pour la hauteur de chaque barre. Une fois dessiné, vous auriez :
- une barre de hauteur 0 pour l'intervalle/bin [0,1] sur l'axe des X,
- une barre de hauteur 2 pour l'intervalle/le bac [1,2],
- une barre de hauteur 1 pour la gamme/le bac [2,3].
Vous pouvez le tracer directement avec Matplotlib (son hist
renvoie également les bins et les valeurs) :
>>> import matplotlib.pyplot as plt
>>> plt.hist([1, 2, 1], bins=[0, 1, 2, 3])
(array([0, 2, 1]), array([0, 1, 2, 3]), <a list of 3 Patch objects>)
>>> plt.show()