Un bin è un intervallo che rappresenta la larghezza di una singola barra dell'istogramma lungo l'asse X. Potresti anche chiamarlo intervallo. (Wikipedia le definisce più formalmente come "categorie disgiunte".)
La histogram
funzione Numpy non disegna l'istogramma, ma calcola le occorrenze dei dati di input che rientrano in ogni bin, che a sua volta determina l'area (non necessariamente l'altezza se i bin non hanno la stessa larghezza) di ogni barra.
In questo esempio:
np.histogram([1, 2, 1], bins=[0, 1, 2, 3])
Sono disponibili 3 bin, per valori compresi tra 0 e 1 (escl. 1), 1 e 2 (escl. 2) e 2 e 3 (incl. 3), rispettivamente. Il modo in cui Numpy definisce questi contenitori se fornendo un elenco di delimitatori ( [0, 1, 2, 3]
) in questo esempio, sebbene restituisca anche i contenitori nei risultati, poiché può sceglierli automaticamente dall'input, se non ne viene specificato nessuno. Se bins=5
, ad esempio, verranno utilizzati 5 contenitori di uguale larghezza distribuiti tra il valore di input minimo e il valore di input massimo.
I valori di input sono 1, 2 e 1. Pertanto, bin "1 to 2" contiene due occorrenze (i due 1
valori) e bin "2 to 3" contiene un'occorrenza (the 2
). Questi risultati sono in primo elemento della tupla restituita: array([0, 2, 1])
.
Poiché i contenitori qui hanno la stessa larghezza, è possibile utilizzare il numero di occorrenze per l'altezza di ciascuna barra. Una volta disegnato, avresti:
- una barra di altezza 0 per range / bin [0,1] sull'asse X,
- una barra di altezza 2 per range / bin [1,2],
- una barra di altezza 1 per range / bin [2,3].
Puoi tracciarlo direttamente con Matplotlib (la sua hist
funzione restituisce anche i contenitori ei valori):
>>> 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()