Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 11th, 2012  |  syntax: None  |  size: 0.57 KB  |  hits: 13  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Matplotlib: Preventing overlaying datapoints
  2. CategoryA: 0,0,3,0,5  
  3. CategoryB: 5,10,5,5,10
  4.        
  5. from matplotlib import pyplot as plt
  6. from itertools import groupby
  7.  
  8. CA = [0,4,0,3,0,5]  
  9. CB = [0,0,4,4,2,2,2,2,3,0,5]  
  10.  
  11. x = []
  12. y = []
  13. for indx, klass in enumerate([CA, CB]):
  14.     klass = groupby(sorted(klass))
  15.     for item, objt in klass:
  16.         objt = list(objt)
  17.         points = len(objt)
  18.         pos = 1 + indx + (1 - points) / 50.
  19.         for item in objt:
  20.             x.append(pos)
  21.             y.append(item)
  22.             pos += 0.04
  23.  
  24. plt.plot(x, y, 'o')
  25. plt.xlim((0,3))
  26.  
  27. plt.show()