在此先感谢任何帮助或提示.
我正在尝试将我的数据框列之一的拟合法线可视化.到目前为止,我已经能够通过以下方式绘制直方图:
df.radon_adj.hist(bins=30)
import pylab as py
import numpy as np
from scipy import optimize
# Generate a
y = df.radon_adj
data = py.hist(y, bins = 25)
# Equation for Gaussian
def f(x, a, b, c):
return a * py.exp(-(x - b)**2.0 / (2 * c**2))
# Generate data from bins as a set of points
x = [0.5 * (data[1][i] + data[1][i+1]) for i in xrange(len(data[1])-1)]
y = data[0]
popt, pcov = optimize.curve_fit(f, x, y)
x_fit = py.linspace(x[0], x[-1], 100)
y_fit = f(x_fit, *popt)
plot(x_fit, y_fit, lw=4, color="r")
解决方法:
我不会通过定义高斯方程来重新发明轮子.站在scipy包的肩膀上:
from scipy.stats import norm
df = pd.DataFrame({'A': np.random.normal(size=100)})
df.A.plot(kind='hist', normed=True)
range = np.arange(-4, 4, 0.001)
plt.plot(range, norm.pdf(range,0,1))
请注意,这里唯一的“魔法”是确保直方图是标准的.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。