如何将数据放在类似powerlaw.plot_pdf的图表上?

0 投票
1 回答
1068 浏览
提问于 2025-04-19 21:34

我需要一些关于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轴的值,但我也没有成功。

谢谢你的帮助,

Alon

1 个回答

0

解决了。

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

要获取绘制powerlaw.plot_pdf(data)图表的x轴和y轴的值:

edges, hist = powerlaw.pdf(data)

现在,我们不仅仅是在对数坐标系上绘制数据,正如问题中所描述的那样,而是应该先计算出每个区间的中心。这些中心值将作为x轴的值。hist包含y轴的值:

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

现在在对数坐标系上绘制:

plt.loglog(bin_centers, hist)

撰写回答