Label numbers, avoiding scientific notation where possible
Source:R/label-number-auto.R
label_number_auto.Rd
Switches between number_format()
and scientific_format()
based on a set of
heuristics designed to automatically generate useful labels across a wide
range of inputs
Value
All label_()
functions return a "labelling" function, i.e. a function that
takes a vector x
and returns a character vector of length(x)
giving a
label for each input value.
Labelling functions are designed to be used with the labels
argument of
ggplot2 scales. The examples demonstrate their use with x scales, but
they work similarly for all scales, including those that generate legends
rather than axes.
See also
Other labels for continuous scales:
label_bytes()
,
label_currency()
,
label_glue()
,
label_number_si()
,
label_ordinal()
,
label_parse()
,
label_percent()
,
label_pvalue()
,
label_scientific()
Examples
# Very small and very large numbers get scientific notation
demo_continuous(c(0, 1e-6), labels = label_number_auto())
#> scale_x_continuous(labels = label_number_auto())
demo_continuous(c(0, 1e9), labels = label_number_auto())
#> scale_x_continuous(labels = label_number_auto())
# Other ranges get the numbers printed in full
demo_continuous(c(0, 1e-3), labels = label_number_auto())
#> scale_x_continuous(labels = label_number_auto())
demo_continuous(c(0, 1), labels = label_number_auto())
#> scale_x_continuous(labels = label_number_auto())
demo_continuous(c(0, 1e3), labels = label_number_auto())
#> scale_x_continuous(labels = label_number_auto())
demo_continuous(c(0, 1e6), labels = label_number_auto())
#> scale_x_continuous(labels = label_number_auto())
# Transformation is applied individually so you get as little
# scientific notation as possible
demo_log10(c(1, 1e7), labels = label_number_auto())
#> scale_x_log10(labels = label_number_auto())