Un intervalo es un rango que representa el ancho de una sola barra del histograma a lo largo del eje X. También podría llamar a esto el intervalo. (Wikipedia las define más formalmente como "categorías disjuntas").
La histogram
función Numpy no dibuja el histograma, pero calcula las ocurrencias de datos de entrada que caen dentro de cada contenedor, lo que a su vez determina el área (no necesariamente la altura si los contenedores no tienen el mismo ancho) de cada barra.
En este ejemplo:
np.histogram([1, 2, 1], bins=[0, 1, 2, 3])
Hay 3 contenedores, para valores que van de 0 a 1 (excluido 1), 1 a 2 (excluido 2) y 2 a 3 (incl. 3), respectivamente. La forma en que Numpy define estos bins es dando una lista de delimitadores ( [0, 1, 2, 3]
) en este ejemplo, aunque también devuelve los bins en los resultados, ya que puede elegirlos automáticamente desde la entrada, si no se especifica ninguno. Si bins=5
, por ejemplo, utilizará 5 contenedores de igual ancho repartidos entre el valor de entrada mínimo y el valor de entrada máximo.
Los valores de entrada son 1, 2 y 1. Por lo tanto, el bin "1 a 2" contiene dos apariciones (los dos 1
valores) y el bin "2 a 3" contiene una ocurrencia (el 2
). Estos resultados están en el primer elemento de la tupla devuelta: array([0, 2, 1])
.
Dado que los contenedores aquí tienen el mismo ancho, puede usar el número de ocurrencias para la altura de cada barra. Cuando se dibuje, tendrías:
- una barra de altura 0 para rango / intervalo [0,1] en el eje X,
- una barra de altura 2 para rango / contenedor [1,2],
- una barra de altura 1 para rango / contenedor [2,3].
Puede trazar esto directamente con Matplotlib (su hist
función también devuelve los contenedores y los valores):
>>> 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()