% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/plot-construction.r
\name{+.gg}
\alias{+.gg}
\alias{\%+\%}
\title{Add components to a plot}
\usage{
\method{+}{gg}(e1, e2)

e1 \%+\% e2
}
\arguments{
\item{e1}{An object of class \code{\link[=ggplot]{ggplot()}} or a \code{\link[=theme]{theme()}}.}

\item{e2}{A plot component, as described below.}
}
\description{
\code{+} is the key to constructing sophisticated ggplot2 graphics. It
allows you to start simple, then get more and more complex, checking your
work at each step.
}
\section{What can you add?}{

You can add any of the following types of objects:
\itemize{
\item An \code{\link[=aes]{aes()}} object replaces the default aesthetics.
\item A layer created by a \code{geom_} or \code{stat_} function adds a
new layer.
\item A \code{scale} overrides the existing scale.
\item A \code{\link[=theme]{theme()}} modifies the current theme.
\item A \code{coord} overrides the current coordinate system.
\item A \code{facet} specification overrides the current faceting.
}

To replace the current default data frame, you must use \verb{\%+\%},
due to S3 method precedence issues.

You can also supply a list, in which case each element of the list will
be added in turn.
}

\examples{
base <- ggplot(mpg, aes(displ, hwy)) + geom_point()
base + geom_smooth()

# To override the data, you must use \%+\%
base \%+\% subset(mpg, fl == "p")

# Alternatively, you can add multiple components with a list.
# This can be useful to return from a function.
base + list(subset(mpg, fl == "p"), geom_smooth())
}
\seealso{
\code{\link[=theme]{theme()}}
}
