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()
import seaborn as sns
from scipy.stats import norm
data = norm.rvs(5,0.4,size=1000) # you can use a pandas series or a list if you want
sns.distplot(data)
plt.show()
您可以使用
matplotlib
绘制直方图和PDF(如@MrE的答案中的链接)。为了拟合和计算PDF,可以使用scipy.stats.norm
,如下所示。以下是脚本生成的情节:
这里你不符合正态分布。用
sns.distplot(data, fit=norm, kde=False)
替换sns.distplot(data)
就可以了。有一种更简单的方法可以使用seaborn来实现这一点:
output:
了解更多信息:seaborn.distplot
相关问题 更多 >
编程相关推荐