威布尔分布 Scipy

Weibull Distribution Scipy

以下是我为 Weibull 分布编写的代码,它生成适合 Weibull 分布的数据并尝试绘制相同的数据

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()

我的问题:-

我想要在 bins 上进行单线插值,为什么我的情节变得一团糟?

matplotlib plot 函数按照给定点的顺序绘制连接点的曲线。要获得您期望的曲线,请在绘制之前对 data 进行排序。例如:

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)))