Charlie Charlie - 4 months ago 48
R Question

Equivalent of curve() for ggplot

Is there an equivalent method for plotting functions using

to the
command employed in base graphics? I guess that the alternative would be to just create a vector of values of the function and plot a connected line, but I was hoping for something a bit more simple.



You can add a curve using the stat_function:

ggplot(data.frame(x=c(0, 10)), aes(x)) + stat_function(fun=sin)

It is also possible to use qplot, but it's not clear if this is simplier:

qplot(c(0,2), fun=sin, stat="function", geom="line")

If your curve function is more complicated, then use a lambda function. For example,

ggplot(data.frame(x=c(0, 10)), aes(x)) + 
  stat_function(fun=function(x) sin(x) + log(x))

you can find other examples at