stat_function {ggplot2} | R Documentation |
Superimpose a function.
stat_function(mapping = NULL, data = NULL, geom = "path", position = "identity", fun, n = 101, args = list(), ...)
fun |
function to use |
n |
number of points to interpolate along |
args |
list of additional arguments to pass to
|
mapping |
The aesthetic mapping, usually constructed
with |
data |
A layer specific dataset - only needed if you want to override the plot defaults. |
geom |
The geometric object to use display the data |
position |
The position adjustment to use for overlappling points on this layer |
... |
other arguments passed on to
|
a data.frame with additional columns:
x |
x's along a grid |
y |
value of function evaluated at corresponding x |
stat_function
understands the following aesthetics (required aesthetics are in bold):
y
x <- rnorm(100) base <- qplot(x, geom = "density") base + stat_function(fun = dnorm, colour = "red") base + stat_function(fun = dnorm, colour = "red", arg = list(mean = 3)) # Plot functions without data # Examples adapted from Kohske Takahashi # Specify range of x-axis qplot(c(0, 2), stat = "function", fun = exp, geom = "line") ggplot(data.frame(x = c(0, 2)), aes(x)) + stat_function(fun = exp) # Plot a normal curve ggplot(data.frame(x = c(-5, 5)), aes(x)) + stat_function(fun = dnorm) # With qplot qplot(c(-5, 5), stat = "function", fun = dnorm, geom = "line") # Or qplot(c(-5, 5), geom = "blank") + stat_function(fun = dnorm) # To specify a different mean or sd, use the args parameter to supply new values ggplot(data.frame(x = c(-5, 5)), aes(x)) + stat_function(fun = dnorm, args = list(mean = 2, sd = .5)) # Two functions on the same plot f <- ggplot(data.frame(x = c(0, 10)), aes(x)) f + stat_function(fun = sin, colour = "red") + stat_function(fun = cos, colour = "blue") # Using a custom function test <- function(x) {x ^ 2 + x + 20} f + stat_function(fun = test)