Modify a ggplot or theme object by adding on new components.

This operator allows you to add objects to a ggplot or theme object.

## S3 method for class 'gg':
+(e1, e2)
An object of class ggplot or theme
A component to add to e1

If the first object is an object of class ggplot, you can add the following types of objects, and it will return a modified ggplot object.

  • data.frame: replace current data.frame (must use%+%)
  • uneval: replace current aesthetics
  • layer: add new layer
  • theme: update plot theme
  • scale: replace current scale
  • coord: override current coordinate system
  • facet: override current coordinate faceting

If the first object is an object of class theme, you can add another theme object. This will return a modified theme object.

For theme objects, the + operator and the %+replace% can be used to modify elements in themes.

The + operator completely replaces elements with elements from e2.

In contrast, the %+replace% operator does not replace the entire element; it only updates element properties which are present (not NULL) in the second object.

See Also


  • +.gg
  • %+%
  • %+replace%
### Adding objects to a ggplot object
p <- qplot(wt, mpg, colour = hp, data = mtcars)

p + coord_cartesian(ylim = c(0, 40))
p + scale_colour_continuous(breaks = c(100, 300))
p + guides(colour = "colourbar")

# Use a different data frame
m <- mtcars[1:10, ]
p %+% m

### Adding objects to a theme object
# Compare these results of adding theme objects to other theme objects
add_el <- theme_grey() + theme(text = element_text(family = "Times"))
rep_el <- theme_grey() %+replace% theme(text = element_text(family = "Times"))

Documentation reproduced from package ggplot2, version, License: GPL-2

Community examples

Looks like there are no examples yet.