0

我需要一些有关 powerlaw 包的基本帮助(https://pypi.python.org/pypi/powerlaw)。

我有一个数据样本列表。当我使用 powerlaw.plot_pdf(data) 时,我得到一个图表(* 抱歉,由于我还没有足够的声誉,所以无法在此处上传图表)。

但是,当我尝试自己创建相同的图表时(使用此代码):

ax.plot(data)
ax.set_yscale('log')
ax.set_xscale('log') 

我得到一个不同的图表。

为什么?也许我应该首先规范化数据(如果是 - 如何)?还是我错过了更重要的事情?(如果我做对了,使用 powerlaw.plot_pdf(data) 意味着在拟合之前绘制数据)。

另一种选择是获取以某种方式生成 powerlaw.plot_pdf(data) 图形的 x 轴和 y 轴的值,但也没有成功。

感谢您的热心帮助,

阿隆

4

1 回答 1

0

解决了。

下载 powerlaw 代码 ( https://code.google.com/p/powerlaw/source/checkout ) 后,事情变得更加清晰。

要获取生成 powerlaw.plot_pdf(data) 图形的 x 轴和 y 轴的值:

edges, hist = powerlaw.pdf(data)

现在,我们应该首先生成 bin 的中心,而不是像问题中描述的那样仅在 log log 轴上绘制数据。这些中心将是 x 轴上的值。hist 包含 y 轴的值:

 bin_centers = (edges[1:]+edges[:-1])/2.0

现在在 loglog 轴上绘制:

plt.loglog(bin_centers, hist)
于 2014-09-05T11:21:49.053 回答