stat_smooth {ggplot2} | R Documentation |
Add a smoother
stat_smooth(mapping=NULL, data=NULL, geom="smooth", position="identity", method="auto", formula=y ~ x, se=TRUE, n=80, fullrange=FALSE, level=0.95, na.rm=FALSE, ...)
mapping |
mapping between variables and aesthetics generated by aes |
data |
dataset used in this layer, if not specified uses plot dataset |
geom |
geometric used by this layer |
position |
position adjustment used by this layer |
method |
smoothing method (function) to use, eg. lm, glm, gam, loess, rlm |
formula |
formula to use in smoothing function, eg. y ~ x, y ~ poly(x, 2), y ~ log(x) |
se |
display confidence interval around smooth? (true by default, see level to control) |
n |
number of points to evaluate smoother at |
fullrange |
should the fit span the full range of the plot, or just the data |
level |
level of confidence interval to use (0.95 by default) |
na.rm |
NULL |
... |
other arguments are passed to smoothing function |
Aids the eye in seeing patterns in the presence of overplotting.This page describes stat_smooth, see layer
and qplot
for how to create a complete plot from individual components.
A layer
The following aesthetics can be used with stat_smooth. Aesthetics are mapped to variables in the data with the aes
function: stat\_smooth(\code{aes}(x = var))
x
: x position (required)
y
: y position (required)
Hadley Wickham, http://had.co.nz/
lm
: for linear smooths
glm
: for generalised linear smooths
loess
: for local smooths
## Not run: c <- ggplot(mtcars, aes(y=wt, x=qsec)) c + stat_smooth() c + stat_smooth() + geom_point() # Adjust parameters c + stat_smooth(se = FALSE) + geom_point() c + stat_smooth(span = 0.9) + geom_point() c + stat_smooth(method = "lm") + geom_point() c + stat_smooth(method = lm, formula = y ~ ns(x,3)) + geom_point() c + stat_smooth(method = MASS::rlm, formula= y ~ ns(x,3)) + geom_point() # The default confidence band uses a transparent colour. # This currently only works on a limited number of graphics devices # (including Quartz, PDF, and Cairo) so you may need to set the # fill colour to a opaque colour, as shown below c + stat_smooth(fill="grey50", size=2) c + stat_smooth(fill="blue", size=2) # The colour of the line can be controlled with the colour aesthetic c + stat_smooth(fill="blue", colour="darkblue", size=2) c + stat_smooth(fill=alpha("blue", 0.2), colour="darkblue", size=2) c + geom_point() + stat_smooth(fill=alpha("blue", 0.2), colour="darkblue", size=2) # Smoothers for subsets c <- ggplot(mtcars, aes(y=wt, x=mpg)) + facet_grid(. ~ cyl) c + stat_smooth(method=lm) + geom_point() c + stat_smooth(method=lm, fullrange=T) + geom_point() # Geoms and stats are automatically split by aesthetics that are factors c <- ggplot(mtcars, aes(y=wt, x=mpg, colour=factor(cyl))) c + stat_smooth(method=lm) + geom_point() c + stat_smooth(method=lm, fullrange=TRUE, fill=alpha("black", 0.1)) + geom_point() # Use qplot instead qplot(qsec, wt, data=mtcars, geom=c("smooth", "point")) # Example with logistic regression data("kyphosis", package="rpart") qplot(Age, Kyphosis, data=kyphosis) qplot(Age, data=kyphosis, facets = . ~ Kyphosis, binwidth = 10) qplot(Age, Kyphosis, data=kyphosis, position="jitter") qplot(Age, Kyphosis, data=kyphosis, position=position_jitter(y=5)) qplot(Age, as.numeric(Kyphosis) - 1, data = kyphosis) + stat_smooth(method="glm", family="binomial") qplot(Age, as.numeric(Kyphosis) - 1, data=kyphosis) + stat_smooth(method="glm", family="binomial", formula = y ~ ns(x, 2)) ## End(Not run)