Use in Ticks.custom for creating "nice" values.
ticksConfig : Ticks.Config msg
ticksConfig =
Ticks.custom <|
\dataRange axisRange ->
List.map Tick.int (valuesWithin dataRange)
valuesWithin : Coordinate.Range -> List Int
valuesWithin =
Values.int (Values.around 3)See full example here.
** What are "nice" numbers/integers/datetimes? **
When I say "nice", I just mean that I try to calculate intervals which begin with 10, 5, 3, 2, 1 (adjusted to magnitude, of course!). For dates, I try to hit whole days, weeks, months or hours, minutes, and seconds.
Makes nice floats.
valuesWithin : Coordinate.Range -> List Float
valuesWithin =
-- something like [ 1, 1.5, 2, 2.5 ]
Values.float (Values.exactly 4)Will get you around the amount of numbers you pass it, although it will prioritize getting "nice" numbers.
Will get you closer to the amount of numbers you pass it, although not actually exactly, since you still want decently "nice" numbers.
P.S. If you have a better name for this function, please contact me.
Makes nice times.
valuesWithin : Coordinate.Range -> List Float
valuesWithin =
Values.time 5See full example here.
Makes evenly spaced floats.
Arguments:
ticksConfig : Ticks.Config msg
ticksConfig =
Ticks.custom <|
\dataRange axisRange ->
List.map Tick.float (Values.custom 45 10 dataRange)
++ -- ^ Makes [ 25, 45, 55, 65, 75, 85, 95 ]
List.map Tick.long (Values.custom 30 20 dataRange)
-- ^ Makes [ 30, 50, 70, 90 ]See full example here.
Makes nice integers.
See full example here.