Un intervallo è un intervallo che rappresenta la larghezza di una singola barra dell'istogramma lungo l'asse X. Si potrebbe anche chiamare questo l'intervallo. (Wikipedia li definisce più formalmente come "categorie disgiunte")
La funzione Numpy histogram
non disegna l'istogramma, ma calcola le occorrenze dei dati di input che rientrano in ciascun contenitore, che a sua volta determina l'area (non necessariamente l'altezza se i raccoglitori non hanno larghezza uguale) di ciascuna barra.
In questo esempio:
np.histogram([1, 2, 1], bins=[0, 1, 2, 3])
Ci sono 3 scomparti, per valori compresi tra 0 e 1 (esclusa 1.), da 1 a 2 (escluse. 2) e 2 a 3 (. Incl 3) , rispettivamente. Il modo in cui Numpy definisce questi bin se in questo esempio fornisce un elenco di delimitatori ([0, 1, 2, 3]
), sebbene restituisca anche i bin nei risultati, in quanto può essere scelto automaticamente dall'input, se non ne viene specificato nessuno. Ad esempio, se bins=5
utilizzerà 5 scomparti di larghezza uguale tra il valore di input minimo e il valore di input massimo.
I valori di ingresso sono 1, 2 e 1. Pertanto, bin "1 a 2" contiene due occorrenze (due 1
valori), e bin "2 a 3" contiene un'occorrenza (la 2
). Questi risultati si trovano nel primo elemento della tupla restituita: array([0, 2, 1])
.
Poiché i raccoglitori sono di larghezza uguale, è possibile utilizzare il numero di occorrenze per l'altezza di ciascuna barra. Quando viene disegnata, si avrebbe:
- una barra di altezza 0 per la gamma/bin [0,1] sulla asse X,
- una barra di altezza 2 per la gamma/bin [1,2] ,
- una barra di altezza 1 per intervallo/scomparto [2,3].
È possibile tracciare questa direttamente con Matplotlib (la sua funzione hist
restituisce anche i bidoni 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()
Potrebbe anche essere interessato a [questa risposta] (http://stackoverflow.com/a/5328669/372643) se si desidera tracciare loro. [Matplotlib può anche calcolarli direttamente] (http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.hist). Vedi esempi [qui] (http://matplotlib.sourceforge.net/examples/api/histogram_demo.html) e [qui] (http://matplotlib.sourceforge.net/examples/pylab_examples/histogram_demo_extended.html). – Bruno
Grazie per questa risposta, mi ha appena salvato un sacco di problemi! – AlexFZ