如何将数据放在类似powerlaw.plot_pdf的图表上?
我需要一些关于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)