library - scipy python 3
Ajuste de una distribuciĆ³n normal a los datos 1D (2)
Tengo una matriz de 1 dimensión y puedo calcular la "media" y la "desviación estándar" de esta muestra y trazar la "distribución normal" pero tengo un problema:
Quiero trazar los datos y la distribución normal en la misma figura como a continuación:
No sé cómo trazar tanto los "DATOS" como la "Distribución normal"
¿Alguna idea sobre "la función de densidad de probabilidad gaussiana en scipy.stats"?
s = np.std(array)
m = np.mean(array)
plt.plot(norm.pdf(array,m,s))
Para ver tanto la distribución normal como sus datos reales, debe trazar sus datos como un histograma, luego dibujar la función de densidad de probabilidad sobre esto. Vea el ejemplo en http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.normal.html para http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.normal.html exactamente cómo hacer esto.
Puede usar matplotlib
para trazar el histograma y el PDF (como en el enlace en la respuesta de @MrE). Para ajustar y calcular el PDF, puede utilizar scipy.stats.norm
, de la siguiente manera.
import numpy as np
from scipy.stats import norm
import matplotlib.pyplot as plt
# Generate some data for this demonstration.
data = norm.rvs(10.0, 2.5, size=500)
# Fit a normal distribution to the data:
mu, std = norm.fit(data)
# Plot the histogram.
plt.hist(data, bins=25, density=True, alpha=0.6, color=''g'')
# Plot the PDF.
xmin, xmax = plt.xlim()
x = np.linspace(xmin, xmax, 100)
p = norm.pdf(x, mu, std)
plt.plot(x, p, ''k'', linewidth=2)
title = "Fit results: mu = %.2f, std = %.2f" % (mu, std)
plt.title(title)
plt.show()
Aquí está la trama generada por el script: