我在寻找将中的正态分布拟合添加到分组直方图中最优雅的方式。我知道这个问题之前已经被问过很多次了,但是没有一个建议的选项,比如this one或this one让我觉得非常优雅,至少没有,除非stat_function
可以用于每个特定的数据子部分。R:在ggplot2中添加正态拟合到分组直方图
将正态分布拟合叠加到非分组直方图上的一种相对优雅的方法是使用geom_smooth
和method="nls"
(除了事实之外,它不是自启动函数,起始值必须指定):
library(ggplot2)
myhist = data.frame(size = 10:27, counts = c(1L, 3L, 5L, 6L, 9L, 14L, 13L, 23L, 31L, 40L, 42L, 22L, 14L, 7L, 4L, 2L, 2L, 1L))
ggplot(data=myhist, aes(x=size, y=counts)) + geom_point() +
geom_smooth(method="nls", formula = y ~ N * dnorm(x, m, s), se=F,
start=list(m=20, s=5, N=300))
我想知道是否虽然这种方法也可以用来添加正态分布适合于分组直方图作为
library(devtools)
install_github("tomwenseleers/easyGgplot2",type="source")
library("easyGgplot2") # load weight data
ggplot(weight,aes(x = weight)) +
+ geom_histogram(aes(y = ..count.., colour=sex, fill=sex),alpha=0.5,position="identity")
如果有可能定义的任何包我也想知道一个+ stat_distrfit()
或+ stat_normfit(
)为ggplot2
任何机会(与分组的可能性)? (我真的找不到任何东西,但这似乎是一个普通的任务,所以我只是想知道)
原因我希望代码尽可能短是因为这是一门课程,我想保持尽可能简单...
PS geom_density
不适合我的目标,我也想绘制计数/频率而不是密度。我也想让他们在同一个面板上,并避免使用facet_wrap
看看[这篇文章](http://www.stackoverflow。COM /问题/ 25075428#25091231)。 – jlhoward