Estoy tratando de dibujar parte de un histograma usando matplotlib.matplotlib histogramas normalizados
En lugar de dibujar todo el histograma que tiene una gran cantidad de valores atípicos y grandes valores, quiero centrarme en una pequeña parte. El histograma original están presentes:
hist(data, bins=arange(data.min(), data.max(), 1000), normed=1, cumulative=False)
plt.ylabel("PDF")
Y después del enfoque que tiene este aspecto:
hist(data, bins=arange(0, 121, 1), normed=1, cumulative=False)
plt.ylabel("PDF")
en cuenta que el último contenedor se estira y lo peor de todo los tics Y se escalan para que la suma sea exactamente 1 (por lo que los puntos fuera del rango actual no se tienen en cuenta en absoluto)
Sé que puedo lograr lo que quiero dibujando el histograma en todo el rango posible y luego restringiendo el eje a la parte que me interesa, pero se pierde mucho tiempo calculando contenedores que no voy a usar usar/ver de todos modos.
hist(btsd-40, bins=arange(btsd.min(), btsd.max(), 1), normed=1, cumulative=False)
axis([0,120,0,0.0025])
¿Hay una manera rápida y fácil de dibujar sólo la región enfocada, pero aún así obtener la escala Y correcta?
la forma de calcular los valores normados sin tener todo el conjunto de datos en cuenta? En general, los valores del histograma deberían calcularse de modo que la integral de la curva sea 1, no simplemente dividiendo por el número de puntos. – chthonicdaemon
En ausencia de una función que describa la distribución, lo mejor que puede hacer es contar el número de puntos y dividirlos en consecuencia. – cdecker