试图将正态分布曲线添加到ggplot,它不起作用

时间:2016-07-29 00:36:41

标签: r ggplot2

我试着看看其他一些答案,但感到困惑。

我有一些样本数据的直方图,可以很好地绘制。为了比较,我试图在其上叠加正态分布曲线。我正在使用ggplot。我试图对曲线使用stat_function,它只是不会显示。

这部分可能听起来令人困惑,但是stat_function中的两个args应该独立于底层直方图,或者其中一个必须是相同的。我只是看一些其他的示例代码,在这种情况下看起来他们使用了直方图和sd的均值来表示(反之亦然)。enter image description here

这是我的代码:

sim_cnt<-1000
lambda<-.2
samp_sz<-40
set.seed(222)
mn<-1/lambda
st_dv<-1/lambda
mns<-sapply(1:sim_cnt,function(x){mean(rexp(samp_sz,lambda))})

library(ggplot2)

g<-ggplot(data=data.frame(mns), aes(x=mns))+ geom_histogram(binwidth=.3, fill="red", color="green")+geom_vline(xintercept=mean(mns),size =1, col="black")+labs(x="Means")+ggtitle("Sample Distribution")+stat_function(fun=dnorm, color="pink",args=list(sd=.7905694,mean=5))
g

1 个答案:

答案 0 :(得分:1)

我为你改变了红色和绿色,因为红绿色盲是最常见的遗传性色素缺陷。我将计数乘以.3,以便密度图的带宽与直方图binwidth的带宽相匹配。

g<-ggplot(data=data.frame(mns), aes(x=mns))+ 
  geom_histogram(binwidth=.3, fill="red", color="blue")+
  geom_vline(xintercept=mean(mns),size =1, col="black")+
  labs(x="Means")+ ggtitle("Sample Distribution")
g + stat_density(aes(y = .3 * ..count..), geom = "line",
                 color = "blue", size = 1)

enter image description here