Seria mais útil se você apresentasse um exemplo funcional (ou, neste caso, não funcional) mais completo.
Tentei o seguinte:
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()
Isso realmente produzirá um histograma de gráfico de barras com um eixo y que vai de [0,1]
.
Além disso, de acordo com a hist
documentação (ou seja, ax.hist?
de ipython
), acho que a soma também é adequada:
*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))
Experimente depois dos comandos acima:
np.sum(n * np.diff(bins))
Recebo um valor de retorno 1.0
conforme o esperado. Lembre-se de que normed=True
isso não significa que a soma do valor em cada barra será a unidade, mas, em vez da integral sobre as barras, a unidade. No meu caso np.sum(n)
retornou aprox 7.2767
.