【问题标题】:Trying to add normal distribution curve to ggplot, and it's not working [duplicate]试图将正态分布曲线添加到ggplot,但它不起作用[重复]
【发布时间】:2016-07-29 00:36:40
【问题描述】:

我尝试查看其他一些关于此的答案,但感到困惑。

我有一些样本数据的直方图,可以绘制。为了比较,我试图在它上面覆盖一条正态分布曲线。我正在使用ggplot。我正在尝试对曲线使用 stat_function,但它不会显示。

这部分可能听起来令人困惑,但 stat_function 中的两个参数都应该独立于底层直方图,还是其中一个必须相同。我只是在看其他一些示例代码,在这种情况下,看起来他们使用了直方图中的均值并且声明了 sd(反之亦然)。

这是我的代码:

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

【问题讨论】:

  • 这不是重复的。另一个是使用基础数据。这是使用比较数据。

标签: r ggplot2


【解决方案1】:

我为您更改了红色和绿色的颜色,因为红绿色盲是最常见的遗传性色盲。我将计数乘以 0.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)

【讨论】:

  • 谢谢。这是一个开始。我担心曲线的“块状”,我猜它来自乘以计数。没有把握。有什么办法让曲线平滑?该曲线不应该使用直方图的数据,而只是显示正态分布曲线,以便我可以将其与直方图进行比较。
  • 啊,分布不是密度。此密度图的块状是由于您的程序中的采样变化造成的。我犯这个错误的原因是您正在绘制计数直方图而不是频率。由于您正在这样做,因此它与 y 值小于 0.5 的正常密度进行比较。您将在另一个重复问题的解决方案中注意到这一点。
  • 我查看了重复的,但它似乎想将基础数据的曲线放在基础数据的直方图上,这不是我正在做的。此外,我从作业中的一个错误中看到,理论标准偏差被错误地列出。应该是0.7905694,而不是5。基础数据的sd是0.808。
  • 我必须在直方图中添加“aes(y=..density..)”。
  • 另一页上的答案正在绘制您要查找的内容。只是为了确保你有正确的东西,它是 dmns = data.frame(mns) ggplot(data= dmns, aes(x=mns)) + geom_histogram(aes(y=..density..), fill="red", color="blue", position="identity", binwidth=.5) + geom_vline(xintercept=mean(mns),size =1, col="black")+ stat_function(fun = dnorm, color="blue", args=list(mean=mn, sd=.79))
猜你喜欢
  • 2016-09-16
  • 2016-08-03
  • 2021-12-04
  • 2017-03-02
  • 2021-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多