2017-03-21 1 views
1

Voici le code que j'ai écrit pour la distribution de Weibull qui génère des données qui s'adapter à une distribution de Weibull et essayer de tracer le mêmeWeibull distribution Scipy

from scipy import stats 
import numpy as np 
import matplotlib.pyplot as plt 

data = stats.exponweib.rvs(a=1, c=2.09, scale=10.895, loc=0, size=2500) 

plt.plot(data, stats.exponweib.pdf(data, *stats.exponweib.fit(data, 1, 1, scale=02, loc=0)) 

_ = plt.hist(data, bins = np.linspace(0, 16, 33), normed=True, alpha=0.5) 

plt.show() 

Ma question: -

Je veux une seule ligne interpolation sur les poubelles, pourquoi je me suis trompé complot?

+0

Bytheway, "' scipy.stats.weibull_min' est la distribution souvent appelée "la" distribution de Weibull" - [scipy-weibull-cdf-calcul] (https://stackoverflow.com/questions/27432222/scipy-weibull-cdf-calcul) – denis

Répondre

1

La fonction matplotlib plot trace la courbe reliant les points dans l'ordre dans lequel les points sont donnés. Pour obtenir la courbe que vous attendez, trier data avant de le tracer. Par exemple:

data = stats.exponweib.rvs(a=1, c=2.09, scale=10.895, loc=0, size=2500) 
data.sort() 
plt.plot(data, stats.exponweib.pdf(data, *stats.exponweib.fit(data, 1, 1, scale=2, loc=0))) 
+0

Merci mec .. :) –