R 使用stat_函数时向ggplot添加图例
我试图在ggplot中添加一个图例,以区分模拟正态分布和生成的正态分布。下面是我的代码R 使用stat_函数时向ggplot添加图例,r,ggplot2,R,Ggplot2,我试图在ggplot中添加一个图例,以区分模拟正态分布和生成的正态分布。下面是我的代码 set.seed(1) lambda = .2 n = 40 sim = 10000 means = replicate(sim, expr = mean(rexp(n,lambda))) ggplot(data.frame(means), aes(x=means)) + geom_density() + stat_function(fun = dnorm, c
set.seed(1)
lambda = .2
n = 40
sim = 10000
means = replicate(sim, expr = mean(rexp(n,lambda)))
ggplot(data.frame(means), aes(x=means)) +
geom_density() +
stat_function(fun = dnorm, color = "blue",
arg = list(mean = 1/lambda, sd=sqrt(lambda^-2/n))) +
scale_colour_manual("Legend title", values = c("red", "blue"))
我试着使用scale\u color\u手册作为另一个stackoverflow答案,但我无法得到一个图例来显示
参考答案
为了在ggplot2中获得图例,您需要在美学中映射颜色变量:
ggplot(data.frame(means), aes(x = means)) +
geom_density(aes(color = "a")) +
stat_function(fun = dnorm, aes(color = "b"),
arg = list(mean = 1/lambda, sd = sqrt(lambda^-2/n))) +
scale_colour_manual("Legend title", values = c("a" ="red","b" = "blue"))
试试:
set.seed(1)
lambda = .2
n = 40
sim = 10000
newvar = rnorm(sim, mean = 1/lambda, sd=sqrt(lambda^-2/n) )
means = replicate(sim, expr = mean(rexp(n,lambda)))
ddf = data.frame(means, newvar)
mm = melt(ddf)
ggplot(mm) +geom_density( aes(value, group=variable, color=variable) )