powelaw.py 958 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import powerlaw
  2. from numpy import genfromtxt
  3. import matplotlib.pyplot as plt
  4. mydata = genfromtxt('power_law.csv', delimiter=',', dtype = 'int')
  5. print(len(mydata))
  6. print(mydata)
  7. ## Build and print probability distribution, bins per 10
  8. distr = dict()
  9. for i in mydata:
  10. bins = i // 10
  11. if bins in distr:
  12. distr[bins] += 1
  13. else:
  14. distr[bins] = 1
  15. for i in distr:
  16. print(str(i) + ', ' + str(distr[i]))
  17. results=powerlaw.Fit(mydata, True, xmin=1, xmax = 2000)
  18. print(results.power_law.alpha)
  19. print(results.truncated_power_law.alpha)
  20. print(results.power_law.xmin)
  21. print(results.truncated_power_law.xmin)
  22. print(results.truncated_power_law.xmax)
  23. print(results.power_law.discrete)
  24. print(results.lognormal.mu)
  25. results.plot_pdf()
  26. results.power_law.plot_pdf()
  27. results.truncated_power_law.plot_pdf()
  28. results.lognormal.plot_pdf()
  29. plt.plot(results.data)
  30. plt.show()
  31. R, p=results.distribution_compare('power_law','lognormal_positive')
  32. print(R,p)