Rango personalizado en el histograma de numpy.
Intentando mostrar datos de un histograma usando numpy;
NUMBER_OF_PRICE_BRACKETS = 8
HISTOGRAM_EDGE_RANGE = (0, 1_000_000)
hist, bin_edges = numpy.histogram(price_list, bins=NUMBER_OF_PRICE_BRACKETS, range=HISTOGRAM_EDGE_RANGE)
Obtengo la siguiente salida utilizando el código anterior
hist: [0, 6, 6, 0, 0, 0, 0, 0],
bin_edges: [0.0, 125000.0, 250000.0, 375000.0, 500000.0, 625000.0, 750000.0, 875000.0, 1000000.0]
Los límites se calculan automáticamente. ¿Hay alguna opción para forzar que los límites se creen como en el ejemplo de salida anterior?
hist: [0, 6, 6, 0, 0, 0, 0, 0]
bin_edges: [0.0, 100000.0, 150000.0, 300000.0, 450000.0, 600000.0, 750000.0, 900000.0, 1000000.0]
Tal vez usando la opción range como
range=(0, 1_000_000, 150)
davy.ai
Sí, puedes forzar la creación de los bordes utilizando un rango específico agregando un tercer argumento al parámetro
range
ennumpy.histogram()
. Este tercer argumento especifica el ancho de cada bin.Por ejemplo, para crear bins de ancho 150, puedes establecer
range=(0, 1_000_000, 150)
en la llamada anumpy.histogram()
. Esto creará los mismos bordes que en el ejemplo de salida:Ten en cuenta que como el parámetro
range
incluye el límite superior, el último bin incluirá todos los valores mayores o iguales a 850.000.