Dada una media y una varianza, ¿existe una llamada de función simple que trazará una distribución normal?
python
matplotlib
usuario1220022
fuente
fuente


%matplotlib inlinepara que aparezca la tramascipy.stats.norm.pdf(x, mu, sigma)lugar demlab.normpdf(x, mu, sigma)mathcuando ya lo ha importadonumpyy podría utilizarlonp.sqrt?mathpara operaciones escalares ya que, por ejemplo,math.sqrtes más rápido quenp.sqrtcuando se opera en escalares.No creo que haya una función que haga todo eso en una sola llamada. Sin embargo, puede encontrar la función de densidad de probabilidad gaussiana en
scipy.stats.Entonces, la forma más sencilla que se me ocurrió es:
Fuentes:
fuente
norm.pdfanorm(0, 1).pdf. Esto facilita la adaptación a otros casos / entender que esto genera un objeto que representa una variable aleatoria.Use seaborn en su lugar, estoy usando distplot de seaborn con media = 5 std = 3 de 1000 valores
Obtendrá una curva de distribución normal
fuente
La respuesta de Unutbu es correcta. Pero debido a que nuestra media puede ser más o menos que cero, todavía me gustaría cambiar esto:
a esto :
fuente
Si prefiere utilizar un enfoque paso a paso, podría considerar una solución como la siguiente
fuente
Acabo de volver a esto y tuve que instalar scipy ya que matplotlib.mlab me dio el mensaje de error
MatplotlibDeprecationWarning: scipy.stats.norm.pdfal probar el ejemplo anterior. Entonces la muestra es ahora:fuente
Creo que es importante establecer la altura, así que creé esta función:
Donde
sigmaes la desviación estándar,hes la altura ymides la media.Aquí está el resultado usando diferentes alturas y desviaciones:
fuente
puede obtener CDF fácilmente. entonces pdf a través de cdf
fuente