Is there a way of overlaying a mathematical function on top of data using ggplot?
## add ggplot2
library(ggplot2)
# function
eq = function(x){x*x}
# Data
You probably want stat_function:
library("ggplot2")
eq <- function(x) {x*x}
tmp <- data.frame(x=1:50, y=eq(1:50))
# Make plot object
p <- qplot(x, y, data=tmp, xlab="X-axis", ylab="Y-axis")
c <- stat_function(fun=eq)
print(p + c)
and if you really want to use curve()
, i.e., the computed x and y coordinates:
qplot(x, y, data=as.data.frame(curve(eq)), geom="line")
Given that your question title is "plotting functions in R", here's how to use curve
to add a function to a base R plot.
Create data as before
eq = function(x){x*x}; x = (1:50); y = eq(x)
Then use plot
from base graphics to plot the points followed by curve
with the add=TRUE
argument, to add the curve.
plot(x, y, xlab = "X-axis", ylab = "Y-axis")
curve(eq, add=TRUE)