
Untitled
By: a guest on
May 11th, 2012 | syntax:
None | size: 0.57 KB | hits: 13 | expires: Never
Matplotlib: Preventing overlaying datapoints
CategoryA: 0,0,3,0,5
CategoryB: 5,10,5,5,10
from matplotlib import pyplot as plt
from itertools import groupby
CA = [0,4,0,3,0,5]
CB = [0,0,4,4,2,2,2,2,3,0,5]
x = []
y = []
for indx, klass in enumerate([CA, CB]):
klass = groupby(sorted(klass))
for item, objt in klass:
objt = list(objt)
points = len(objt)
pos = 1 + indx + (1 - points) / 50.
for item in objt:
x.append(pos)
y.append(item)
pos += 0.04
plt.plot(x, y, 'o')
plt.xlim((0,3))
plt.show()