Sería más útil si presentara un ejemplo de trabajo más completo (o en este caso no funcional).
I intentado el siguiente:
import numpy as np
import matplotlib.pyplot as plt
x = np.random.randn(1000)
fig = plt.figure()
ax = fig.add_subplot(111)
n, bins, rectangles = ax.hist(x, 50, normed=True)
fig.canvas.draw()
plt.show()
Esto en efecto producir un histograma gráfico de barras con un eje y que va desde [0,1]
.
Además, según la documentación hist
(es decir ax.hist?
de ipython
), creo que la suma está muy bien también:
*normed*:
If *True*, the first element of the return tuple will
be the counts normalized to form a probability density, i.e.,
``n/(len(x)*dbin)``. In a probability density, the integral of
the histogram should be 1; you can verify that with a
trapezoidal integration of the probability density function::
pdf, bins, patches = ax.hist(...)
print np.sum(pdf * np.diff(bins))
Dar a este un intento después de que los comandos anteriores:
np.sum(n * np.diff(bins))
I Obtenga un valor de retorno de 1.0
como se esperaba. Recuerde que normed=True
no significa que la suma del valor en cada barra será la unidad, pero en lugar de la integral sobre las barras es la unidad. En mi caso, np.sum(n)
devolvió aproximadamente 7.2767
.
Sé que esto es viejo, pero para futuras referencias y cualquier persona que visita esta página, este tipo de eje de propagación se llama un eje de "densidad de probabilidad"! – ChristineB
OP, si todavía estás cerca, quizás quieras cambiar la respuesta aceptada. –