Guest User

Untitled

a guest
Nov 23rd, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.80 KB | None | 0 0
  1. import powerlaw
  2. import matplotlib.pyplot as plt
  3. import math
  4.  
  5. complexity = 10000
  6.  
  7. f = open("export.txt", 'r')
  8. lines = f.readlines()
  9. f.close()
  10.  
  11. freq = []
  12. freq_i = []
  13. i = 0
  14. for line in lines:
  15. n= int(line.replace('n', ''))
  16. freq.append(n)
  17. freq_i.append(i)
  18. i = i+1
  19.  
  20. # estimate alpha
  21. fit = powerlaw.Fit(freq, discrete=True)
  22. alpha = fit.power_law.alpha
  23.  
  24. # generate power law
  25. power = []
  26. power_i = range(0, complexity)
  27. for i in power_i:
  28. power.append(math.pow(i + 1, -alpha)) #add 1 to avoid 0
  29.  
  30. # find power law constant
  31. last_freq = freq[-1]
  32. intersect_power = power[len(freq)] #where the lines meet
  33. c = last_freq/intersect_power
  34.  
  35. # multiply power law by constant
  36. power = [c*p for p in power]
  37.  
  38. plt.loglog(freq_i, freq)
  39. plt.loglog(power_i, power, '--')
  40. plt.show()
  41.  
  42. print(fit.power_law.xmin)
  43. print(alpha)
Add Comment
Please, Sign In to add comment