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[pts][[1]]/35] & /@
Transpose[
pts][[1]], (Round[#,
StandardDeviation[pts][[2]]/36] & /@
Transpose[pts][[2]])}
Note that the 35
is arbitrary, and you should modify it to whatever works best for you.
Also, this works for pts*100
P.S. A prettier version of the code doesn't give the correct answer, unfortunately
Length /@
DeleteDuplicates /@ (Round[#, StandardDeviation[#]/35] & /@
Transpose[pts])