如何使用matplotlib将幂律拟合到直方图中
我正在尝试将一个幂律(更准确地说是帕累托分布)拟合到一个直方图上。我用自己的函数来做这个,方法是检查平方差的最小和。但这意味着我需要遍历所有的系数,这样会花费一些时间。另一个问题是,我需要自己制作一个数据列表,以便拥有直方图的数据。
所以我在寻找一个函数,它可以返回由matplotlib.pyplot.hist()生成的数据列表,而不仅仅是一个图像。然后我希望能更快地将这些数据拟合到帕累托分布,而不是反复循环去获取系数。
1 个回答
3
我觉得你想要的是数值和区间大小。
matplotlib.pyplot.hist()
这个函数会返回一个包含(n, bins, patches)的元组。
比如说,如果你想绘制一些'数据',并且使用150个区间:
import matplotlib.pyplot as plt
hist = plt.hist(data,150)
binsize = hist[0]
value = hist[1]
print binsize
print ''
print value