Sería más útil si presentara un ejemplo de trabajo más completo (o en este caso no funcional).
Intenté lo 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, density=True)
fig.canvas.draw()
plt.show()
De hecho, esto producirá un histograma de gráfico de barras con un eje y que va desde [0,1].
Además, según la histdocumentación (es decir, ax.hist?de ipython), creo que la suma también está bien:
*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))
Dando una oportunidad a esto después de los comandos anteriores:
np.sum(n * np.diff(bins))
Obtengo un valor de retorno de 1.0lo esperado. Recuerde que eso normed=Trueno significa que la suma del valor en cada barra será la unidad, sino que la integral sobre las barras es la unidad. En mi caso np.sum(n)devolvió aprox 7.2767.