Sarebbe più utile se poneste un esempio di lavoro più completo (o in questo caso non funzionante).
Ho provato il seguente:
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()
ciò possa produrre un istogramma grafico a barre con un asse y che va da [0,1]
.
Inoltre, come per la documentazione hist
(cioè ax.hist?
da ipython
), credo che la somma è troppo bella:
*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))
Dare questo una prova dopo i comandi di cui sopra:
np.sum(n * np.diff(bins))
I ottenere un valore di ritorno di 1.0
come previsto. Ricorda che normed=True
non significa che la somma del valore di ogni barra sarà l'unità, ma piuttosto l'integrale sopra le barre è l'unità. Nel mio caso np.sum(n)
restituito circa 7.2767
.
So che questo è vecchio, ma per riferimento e chiunque visiti questa pagina futuro, questo tipo di diffusione asse si chiama un asse di "densità di probabilità"! – ChristineB
OP se sei ancora in giro forse vorresti cambiare la risposta accettata. –