+.gg {ggplot2} | R Documentation

## Add a new component to a ggplot or theme object.

### Description

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

### Usage

    ## S3 method for class 'gg'
    e1 + e2

    e1 %+% e2

    e1 %+replace% e2

### Arguments

`e1` | An object of class `ggplot` or `theme`
`e2` | A component to add to `e1`

### Details

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 updates the elements of e1 that differ from elements specified (not NULL) in e2. Thus this operator can be used to incrementally add or modify attributes of a ggplot theme.

In contrast, the `%+replace%` operator replaces the entire element; any element of a theme not specified in e2 will not be present in the resulting theme (i.e. NULL). Thus this operator can be used to overwrite an entire theme.

### See Also

`theme`

### Examples

    ### Adding objects to a ggplot object
    p <- ggplot(mtcars, aes(wt, mpg, colour = disp)) +
      geom_point()

    p
    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"))

    add_el$text
    rep_el$text

[Package ggplot2 version 2.1.0 Index]