title: Constructing Zipf Distribution with matplotlib, FITTED-LINE
body: <p>I have a list of paragraphs, where I want to run a zipf distribution on their combination.</p>
  
  <p>My code is below:</p>
  
  <pre><code>from itertools import *
  from pylab import *
  from collections import Counter
  import matplotlib.pyplot as plt
  
  
  paragraphs = " ".join(targeted_paragraphs)
  for paragraph in paragraphs:
     frequency = Counter(paragraph.split())
  counts = array(frequency.values())
  tokens = frequency.keys()
  
  ranks = arange(1, len(counts)+1)
  indices = argsort(-counts)
  frequencies = counts[indices]
  loglog(ranks, frequencies, marker=".")
  title("Zipf plot for Combined Article Paragraphs")
  xlabel("Frequency Rank of Token")
  ylabel("Absolute Frequency of Token")
  grid(True)
  for n in list(logspace(-0.5, log10(len(counts)-1), 20).astype(int)):
      dummy = text(ranks[n], frequencies[n], " " + tokens[indices[n]],
      verticalalignment="bottom",
      horizontalalignment="left")
  </code></pre>
  
  <p><strong><em>PURPOSE</em></strong> I attempt to draw "a fitted line" in this graph, and assign its value to a variable. However I do not know how to add that. Any help would be much appreciated for both of these issues.</p>