Skip to content

label_parse() produces expression from strings by parsing them; label_math() constructs expressions by replacing the pronoun .x with each string.



label_math(expr = 10^.x, format = force)



expression to use


another format function to apply prior to mathematical transformation - this makes it easier to use floating point numbers in mathematical expressions.


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

plotmath for the details of mathematical formatting in R.

Other labels for continuous scales: label_bytes(), label_currency(), label_number_auto(), label_number_si(), label_ordinal(), label_percent(), label_pvalue(), label_scientific()

Other labels for discrete scales: label_wrap()


# Use label_parse() with discrete scales
greek <- c("alpha", "beta", "gamma")
#> scale_x_discrete()

demo_discrete(greek, labels = label_parse())
#> scale_x_discrete(labels = label_parse())

# Use label_math() with continuous scales
demo_continuous(c(1, 5))
#> scale_x_continuous()

demo_continuous(c(1, 5), labels = label_math(alpha[.x]))
#> scale_x_continuous(labels = label_math(alpha[.x]))

demo_continuous(c(1, 5), labels = label_math())
#> scale_x_continuous(labels = label_math())