Scale bytes into human friendly units. Can use either SI units (e.g. kB = 1000 bytes) or binary units (e.g. kiB = 1024 bytes). See Units of Information on Wikipedia for more details.
label_bytes(units = "auto_si", accuracy = 1, scale = 1, ...)Unit to use. Should either one of:
"kB", "MB", "GB", "TB", "PB", "EB", "ZB", and "YB" for SI units (base 1000).
"kiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", and "YiB" for binary units (base 1024).
auto_si or auto_binary to automatically pick the most appropriate
unit for each value.
A number to round to. Use (e.g.) 0.01 to show 2 decimal
places of precision. If NULL, the default, uses a heuristic that should
ensure breaks have the minimum number of digits needed to show the
difference between adjacent values.
Applied to rescaled data.
A scaling factor: x will be multiplied by scale before
formatting. This is useful if the underlying data is very small or very
large.
Other arguments passed on to number()
A labeller function that takes a numeric vector of breaks and returns a character vector of labels.
Other labels for continuous scales:
label_dollar(),
label_number_auto(),
label_number_si(),
label_ordinal(),
label_parse(),
label_percent(),
label_pvalue(),
label_scientific()
Other labels for log scales:
label_log(),
label_number_si(),
label_scientific()
demo_continuous(c(1, 1e6))
#> scale_x_continuous()
demo_continuous(c(1, 1e6), labels = label_bytes())
#> scale_x_continuous(labels = label_bytes())
# Auto units are particularly nice on log scales
demo_log10(c(1, 1e7), labels = label_bytes())
#> scale_x_log10(labels = label_bytes())
# You can also set the units
demo_continuous(c(1, 1e6), labels = label_bytes("kB"))
#> scale_x_continuous(labels = label_bytes("kB"))
# You can also use binary units where a megabyte is defined as
# (1024) ^ 2 bytes rather than (1000) ^ 2. You'll need to override
# the default breaks to make this more informative.
demo_continuous(c(1, 1024^2),
breaks = breaks_width(250 * 1024),
labels = label_bytes("auto_binary")
)
#> scale_x_continuous(breaks = breaks_width(250 * 1024), labels = label_bytes("auto_binary"))