Going off of @corey979 's comment.
A slightly more rigorous way to fix your problem with corey's answer is to use the standard deviation
, as opposed to the arbitrary rounding of 1
.
Length /@
DeleteDuplicates /@ (Round[#, StandardDeviation[#]/35] & /@
Transpose[pts])
Note that the 35
is arbitrary, and you should be modify it to whatever works best for you.
Also, this works for pts*100