# NumberLinePlot — scaling coincident points

it doesn't seem the native function NumberLinePlot is able to scale points to reflect coincident points. When an expression such as

Abs[{-9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}]


is plotted, the resultant coincident points aren't shown by any metric (such as the size of the point). In such a case, each point would scale the same (except for 0), but there are cases where this isn't so. In cases where multiple plots on the number line might be shown, this relativity might be informative. Is there some way of doing this?

You will have to separate your points into groups by whatever criteria is appropriate. Let is suppose, for the purpose of illustration, that there three groups: zero, positive points, negative points. Then they might be rendered on a single line using NumberLinePlot like so:

Module[{zero, pos, neg},
zero = 0;
pos = Range[9];
neg = Range[9];
NumberLinePlot[
{zero, neg, pos},
PlotStyle ->
{Directive[PointSize[Large], Red],
Directive[PointSize[Large], Black],
Directive[PointSize[Tiny], White]},
Spacings -> None]]


The basic idea is that you use PlotStyle to scale the points and Spacings -> None to put them all one line.

data = RandomInteger[50, 200];

sb = SplitBy[Tally[data] // SortBy[#, Last] &, Last];

NumberLinePlot[Map[First, sb, {2}],
PlotLegends -> (First /@ Map[Last, sb, {2}]),
Spacings -> .2,
AspectRatio -> 1/4]


However. it is easier with ListPlot

ListPlot[GatherBy[Tally[data], Last], AspectRatio -> 1/6]