gpt4 book ai didi

r - 如何使用ggplot2和lattice在直方图上叠加分布曲线

转载 作者:行者123 更新时间:2023-12-04 23:32:12 26 4
gpt4 key购买 nike

说,我正在使用 facet_grid()在 ggplot2 中获得 2 个直方图。现在我想将这些直方图与泊松曲线(对于 2 个直方图/网格具有不同的平均值)和另一个分布的第二条曲线(我想手动提供值的概率函数)叠加。如何才能做到这一点?

构建示例:

library(ggplot2)

value<-c(rpois(500,1.5))

group<-rep(c("A","B"),250)

data<-data.frame(value,group)

g1<-ggplot(data,aes(value))

g1+geom_histogram(aes(y=..count..),binwidth=1,position="identity")+facet_grid(.~group)

接下来是什么?

或者,可以使用格子包来完成吗?

最佳答案

简单的方法是绘制密度而不是计数并使用 stat_function()

library(ggplot2)
value<-c(rpois(500,1.5))
group<-rep(c("A","B"),250)
data<-data.frame(value,group)
ggplot(data,aes(value)) +
geom_histogram(aes(y=..density..), binwidth=1,position="identity") +
facet_grid(.~group) +
stat_function(geom = "line", fun = dpois, arg = list(lambda = 1.5), colour = "red", fill = NA, n = 9)

如果你想要计数,那么你需要将 dpois 的密度转换为“计数”
ggplot(data,aes(value)) + 
geom_histogram(aes(y=..count..), binwidth=1,position="identity") +
facet_grid(.~group) +
stat_function(geom = "line", fun = function(..., total){dpois(...) * total}, arg = list(lambda = 1.5, total = 250), colour = "red", fill = NA, n = 9)

关于r - 如何使用ggplot2和lattice在直方图上叠加分布曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3459867/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com