Scales
R's scales package for Elixir: the pieces a chart's scales are built from, as plain functions of values, for any charting tool.
Scales finds an axis's breaks and minor breaks, writes their labels, transforms data (logarithms, square roots, probabilities, dates and times, and your own), maps values to colours, shapes and sizes through palettes, and rescales or squishes values outside a range. Each function gives the answer R's scales 1.4.0 gives, to the last digit; where one departs from R, its documentation says how and why.
range = Scales.DataRange.train_continuous(:none, [12.0, 31.5, 18.25, nil])
#=> {12.0, 31.5}
Scales.Breaks.extended(range)
#=> [10.0, 15.0, 20.0, 25.0, 30.0]
Scales.Labels.comma([10.0, 15.0, 20.0], suffix: " km")
#=> ["10 km", "15 km", "20 km"]
Installation
def deps do
[{:scales, "~> 0.1"}]
end
Documentation
The Scales module documentation lists the families, each R's family of functions, and the
conventions they share: how a missing value, an infinity and a colour are written.
Licence
MIT; see LICENSE. The palettes' colours come from ColorBrewer and viridisLite, listed with their licences in THIRD_PARTY_NOTICES.md.