Skip to contents

This uses the midpoint of each interval for its label.


  fmt = NULL,
  single = NULL,
  first = NULL,
  last = NULL,
  raw = FALSE



String, list or function. A format for break endpoints.


Glue string: label for singleton intervals. See lbl_glue() for details.


Glue string: override label for the first category. Write e.g. first = "<{r}" to create a label like "<18". See lbl_glue() for details.


String: override label for the last category. Write e.g. last = ">{l}" to create a label like ">65". See lbl_glue() for details.


[Deprecated]. Use the raw argument to chop() instead.


A function that creates a vector of labels.

Formatting endpoints

If fmt is not NULL then it is used to format the endpoints.

  • If fmt is a string, then numeric endpoints will be formatted by sprintf(fmt, breaks); other endpoints, e.g. Date objects, will be formatted by format(breaks, fmt).

  • If fmt is a list, then it will be used as arguments to format.

  • If fmt is a function, it should take a vector of numbers (or other objects that can be used as breaks) and return a character vector. It may be helpful to use functions from the {scales} package, e.g. scales::label_comma().

See also

Other labelling functions: lbl_dash(), lbl_discrete(), lbl_endpoints(), lbl_glue(), lbl_intervals(), lbl_manual(), lbl_seq()


chop(1:10, c(2, 5, 8), lbl_midpoints())
#>  [1] 1.5 3.5 3.5 3.5 6.5 6.5 6.5 9   9   9  
#> Levels: 1.5 3.5 6.5 9