stat_function(mapping = NULL, data = NULL, geom = "path", position = "identity", fun, n = 101, args = list(), show.legend = NA, inherit.aes = TRUE, ...)
aes
or aes_string
. Only needs to be set
at the layer level if you are overriding the plot defaults.fun
NA
, the default, includes if any aesthetics are mapped.
FALSE
never includes, and TRUE
always includes.FALSE
, overrides the default aesthetics,
rather than combining with them. This is most useful for helper functions
that define both data and aesthetics and shouldn't inherit behaviour from
the default plot specification, e.g. borders
.layer
. This can
include aesthetics whose values you want to set, not map. See
layer
for more details.Superimpose a function.
stat_function
understands the following aesthetics (required aesthetics are in bold):
y
set.seed(1492) df <- data.frame( x = rnorm(100) ) x <- df$x base <- ggplot(df, aes(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 ggplot(data.frame(x = c(0, 2)), aes(x)) + stat_function(fun = exp, geom = "line")
# Plot a normal curve ggplot(data.frame(x = c(-5, 5)), aes(x)) + 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)