title: matplotlib.pyplot overlaying axis labels on bars
body: <p>I have this code that generates this graph but the text is so awfully off. I tried horizontal and vertical adjustments and rotations to make it readable with no success. </p>
  
  <p>Could someone please tell me how I could relocate the text and choose a better font/size so they are readable? </p>
  
  <p>Any suggestions on a better graph to use to show this data is very welcome. </p>
  
  <p><img src="https://i.stack.imgur.com/PYa0f.png" alt="enter image description here"></p>
  
  <pre><code>import matplotlib.pyplot as plt
  
  N = 13
  ind = np.arange(N) 
  width = 0.8
  
  good=[0, 1, 28, 144, 0, 41, 23, 5, 7, 2, 3, 9, 48]
  bad=[0, 1, 28, 144, 0, 41, 23, 5, 7, 2, 3, 9, 48]
  keys=[u'gaming', u'recreation', u'business', u'computer_internet', u'unknown', u'culture_politics', u'science_technology', u'law_crime', u'sports', u'religion', u'weather', u'health', u'arts_entertainment']
  c2='r'
  c1='b'
  p1 = plt.bar(ind, good, width, color=c1)
  p2 = plt.bar(ind, bad, width, color=c2, bottom=good)
  
  plt.ylabel('Number of URLs scanned')
  plt.title('Category')
  plt.xticks(ind+width/2., keys, rotation='vertical')
  #plt.yticks(np.arange(0,81,10), rotation='vertical')
  plt.legend( (p1[0], p2[0]), ('good', 'bad') )
  
  plt.show()
  </code></pre>