上下文: 我有一些数据,我希望:
考虑:
X <- rnorm(1000,0,1)
Y <- (X^2-1)/2
ggplot(as.data.frame(Y), aes(x=Y)) +
geom_histogram(aes(y=..density..),
binwidth=.2,
colour="black", fill="white") +
geom_density(alpha=.2, fill="#FF6666")
这完成了1.和2.但是我怎样才能达到3.和4.?我写了我想绘制的函数:
myfunc <- function(x) {
2*exp(-x-0.5)/(sqrt(2*x+1)*sqrt(2*pi))
}
欢迎任何其他评论/评论(我正在学习)
答案 0 :(得分:4)
您的自定义函数在该域上的表现并不是很好,所以为了便于说明,我替换了另一个简单函数。
#Dummy data set for the legend
dat <- data.frame(x = rep(NA_integer_,2),
y = rep(NA_integer_,2),
grp = c('Theoretical','Estimated'))
ggplot(as.data.frame(Y), aes(x=Y)) +
geom_histogram(aes(y=..density..),
binwidth=.2,
colour="black", fill="white") +
geom_density(alpha=.2, fill="#FF6666",color = '#FF6666') +
stat_function(fun = function(x) exp(-x),colour = "blue") +
geom_point(data = dat,aes(x = x,y = y,color = grp)) +
scale_color_manual(name = "",values = c('#FF6666','blue'))
我对颜色略有不同,但你可以根据自己的需要进行调整。可能有一个更简洁的方法来做传奇,但“带有NA的数据框和分组变量”是我这种事情的标准方法。