曲线拟合 zipf 分布 matplotlib python

man*_*ing 3 python matplotlib zipf

我试图用 Python 中的 Zipf 分布 PDF F~x^(-a)拟合以下图(红点。我只是选择a=0.56并绘制了y = x^(-0.56),我得到了如下所示的曲线。

曲线显然是错误的。我不知道如何进行曲线拟合。

在此处输入图片说明

小智 5

不确定您到底在寻找什么,但如果您想将模型(函数)拟合到数据,请使用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
Run Code Online (Sandbox Code Playgroud)

如果您不相信规范化,请添加第二个参数b并进行拟合。