gpt4 book ai didi

r - ggplot2 按组划分的曲线下阴影区域

转载 作者:行者123 更新时间:2023-12-03 13:54:52 25 4
gpt4 key购买 nike

我试图遮蔽两条曲线下的区域;我想获得与 previous post 完全相同的图(尽管没有阈值) ,唯一的区别是我想使用 geom_line()而不是 stat_density() .有没有办法做到这一点?提前致谢。

我已经尝试了那个帖子中的建议,但是当我使用 geom_line() 时它不起作用.另外,我尝试了一些不同的东西,但这并不是我想要的,因为我想为不同的群体使用不同的颜色进行着色。这是初始代码:

library(ggplot2)
x <- seq(0,1,0.005)
y1 <- dbeta(x,3,3)
data1<-data.frame('x'=x,'y'=y1)
data1$group<-1

y2 <- dbeta(x,10,4)
data2<-data.frame('x'=x,'y'=y2)
data2$group<-2

data<-rbind(data1, data2)
ggplot(data, aes(x=x, y=y, group=group, col=group, fill=group)) + geom_line(size=1) +geom_ribbon(data=subset(data,x>0 &x<1),aes(x=x,ymax=y),ymin=0, fill="green4",alpha=0.3)

如果上面的链接不起作用: ggplot2 shade area under density curve by group

最佳答案

提供的解决方案 here如下所示:

library(ggplot2)
x <- seq(0,1,0.005)
y1 <- dbeta(x,3,3)
data1<-data.frame('x'=x,'y'=y1)
data1$group<-"1"

y2 <- dbeta(x,10,4)
data2<-data.frame('x'=x,'y'=y2)
data2$group<-"2"

data<-rbind(data1, data2)
ggplot(data, aes(x=x, y=y, group=group, fill=group)) +
geom_line(size=.5) +
geom_ribbon(data=subset(data,x>0 & x<1),aes(x=x,ymax=y),ymin=0,alpha=0.3) +
scale_fill_manual(name='', values=c("1" = "green4", "2" = "red"))

enter image description here

这是一个完美的解决方案,但我发现自己一遍又一遍地编写类似的代码,所以我写了 geom_density_line() .它的工作原理类似于 geom_density()但在填充区域周围绘制一 strip 有填充区域的线而不是多边形。它是 ggridges 包当前开发版本的一部分:
# current development version is needed for this to work
library(ggridges) # install.github("clauswilke/ggridges")

ggplot(data, aes(x=x, y=y, group=group, fill=group)) +
geom_density_line(stat = "identity", size=.5, alpha=0.3) +
scale_fill_manual(name='', values=c("1" = "green4", "2" = "red"))

enter image description here

关于r - ggplot2 按组划分的曲线下阴影区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48268022/

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