Czy próbowałeś już stat_function
?
+ stat_function(fun = dnorm)
Pewnie chce wykreślić histogramy pomocą aes(y = ..density..)
aby wykreślić wartości gęstości niż hrabiów.
Wiele przydatnych informacji można znaleźć w pytaniu this, w tym kilka wskazówek dotyczących wykreślania różnych krzywych normalnych na różnych stronach.
Oto przykłady:
dat <- data.frame(x = c(rnorm(100),rnorm(100,2,0.5)),
a = rep(letters[1:2],each = 100))
nakładane jedna normalnie gęstość każdego aspektu:
ggplot(data = dat,aes(x = x)) +
facet_wrap(~a) +
geom_histogram(aes(y = ..density..)) +
stat_function(fun = dnorm, colour = "red")

od kwestii, że związane, tworzyć oddzielną ramkę danych z różne normalne krzywe:
grid <- with(dat, seq(min(x), max(x), length = 100))
normaldens <- ddply(dat, "a", function(df) {
data.frame(
predicted = grid,
density = dnorm(grid, mean(df$x), sd(df$x))
)
})
i wykreślić je oddzielnie przy użyciu geom_line
:
ggplot(data = dat,aes(x = x)) +
facet_wrap(~a) +
geom_histogram(aes(y = ..density..)) +
geom_line(data = normaldens, aes(x = predicted, y = density), colour = "red")

nie można mieszać funkcje graficzne linie bazowe ('()' etc) z grafiką jak siatki wykorzystywane przez ** gpplot2 ** oraz ** ** kratowych pakietów. –