stat_smooth {ggplot2}R Documentation

stat_smooth

Description

Add a smoother

Usage

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, ...)

Arguments

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

Details

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.

Value

A layer

Aesthetics

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

Author(s)

Hadley Wickham, http://had.co.nz/

See Also

Examples

## 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)

[Package ggplot2 version 0.8.2 Index]