我需要在python中使用直方图拟合曲线。我之前用正常的直方图做了这个,这次我试图用x中的对数图做同样的事情。 这是我的代码:
import numpy as np
import matplotlib.pyplot as plt
//radius is my np.array
Rmin = min(radius)
Rmax = max(radius)
logmin = np.log(Rmin)
logmax = np.log(Rmax)
bins = 10**(np.arange(logmin,logmax,0.1))
plt.figure()
plt.xscale("log")
plt.hist(radius, bins, color = 'red')
plt.show()
这显示了高斯分布。我试图用它来拟合曲线,我所做的是在show()命令之前计算以下内容。
(mu, sigma) = np.log(norm.fit((radius)))
y = (mlab.normpdf(np.log(bins), mu, sigma))
plt.plot(bins, y, 'b--', linewidth=2)
我的结果是关于我的分布的非常扁平的曲线。 有人能帮助我吗?
我无法添加整个数组r(50000点),因此我添加了一张显示结果的图片。 See image