你试过stat_function
?
+ stat_function(fun = dnorm)
你可能会想用绘制的aes(y = ..density..)
直方图,以绘制密度值,而不是计数。
了很多有用的信息可以在this问题可以发现,其中包括在不同的层面绘制不同的曲线,正常一些建议。
下面是一些例子:
dat <- data.frame(x = c(rnorm(100),rnorm(100,2,0.5)),
a = rep(letters[1:2],each = 100))
叠加上每个小面的单个正常密度:
ggplot(data = dat,aes(x = x)) +
facet_wrap(~a) +
geom_histogram(aes(y = ..density..)) +
stat_function(fun = dnorm, colour = "red")
从I挂,则创建一个单独的数据帧中的问题不同的正常曲线:
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))
)
})
并绘制它们分别使用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")
不能混合基图形功能('线()'等)与网格图形。 –