曲线拟合zipf分布matplotlib python

时间:2012-08-20 12:18:21

标签: python matplotlib

我试图在python中使用zipf分布拟合下面的图(红点),F~x ^( - a) 我只是简单地选择了a = 0.56,并绘制了y = x ^( - 0.56),得到的曲线如下: 这显然是错误的,不知道我怎么能做曲线拟合

enter image description here

1 个答案:

答案 0 :(得分:2)

不确定您究竟在寻找什么,但如果您想让模型(函数)适合数据,请使用scipy.optimize.curve_fit

from scipy.optimize import curve_fit
from scipy.special import zetac


def f(x, a):
    return (x**-a)/zetac(a)


result = curve_fit(f, x, y, p0=[0.56])
p = result[0]

print p

如果您不信任规范化,请添加第二个参数b并使其适合。