Il serait plus utile que vous posiez un exemple fonctionnel (ou dans ce cas non fonctionnel) plus complet.
J'ai essayé ce qui suit :
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()
Cela produira en effet un histogramme en forme de barre avec un axe y qui va de [0,1]
.
En outre, conformément à la hist
la documentation (c'est-à-dire ax.hist?
de ipython
), je pense que la somme est bonne aussi :
*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))
J'essaie de le faire après les commandes ci-dessus :
np.sum(n * np.diff(bins))
J'obtiens une valeur de retour de 1.0
comme prévu. N'oubliez pas que normed=True
ne signifie pas que la somme des valeurs à chaque barre sera égale à l'unité, mais plutôt que l'intégrale sur les barres sera égale à l'unité. Dans mon cas np.sum(n)
rendu approx. 7.2767
.
7 votes
Je sais que c'est vieux, mais pour référence future & toute personne qui visite cette page, ce type d'axe est appelé un axe de "densité de probabilité" !
0 votes
Para
density
: Tracez un histogramme tel que la surface totale de l'histogramme soit égale à 1 (densité).