考虑以下玩具数据
dat=data.frame(value=runif(3000,1,5),
name=rep(c('A','B','C','D','E','F')),
code=c(rep('game1',1500),rep('game2',1500))
)
我使用' identity'将其可视化为堆积直方图。来自geom_histogram
ggplot(dat,aes(x=value))+
geom_histogram(position='identity',binwidth=0.5,aes(fill=name))+
theme_bw()+
scale_fill_brewer(palette="RdBu")+
facet_wrap(~code)+stat_bin(aes(label=..count..),binwidth=0.5, geom="line", size=1,color='white')
如何使用stat(..count ..)将每个变量(名称)的观察数(计数)添加为一条线。因此,基本上是6行,每个条件对应整个图(两个面),这将反映每个变量每个仓中有多少观察值。
这个想法的出现是因为较低的条形图隐藏在较高的条形图后面,所以重叠的线条会显示条形结束的位置加上alpha透明度在这些情况下的效果并不是很好。
答案 0 :(得分:1)
添加geom_density()
似乎可以解决问题:
+ geom_density(aes(value, ..count.., color=name))
答案 1 :(得分:0)
您是否在寻找每个bin / variable组合的行?如果是这样,您是否尝试过查看geom_freqpoly()?
ggplot(dat,aes(x=value))+
geom_histogram(position="identity",binwidth=0.5,aes(fill=name))+
theme_bw()+
scale_fill_brewer(palette="RdBu")+
facet_wrap(~code)+geom_freqpoly(binwidth=0.5,aes(colour=name),size=1)
有关示例,请参阅here:
你可以玩线尺寸,但我认为它仍然看起来很混乱。您也可以尝试使用geom_bar。类似的东西:
ggplot(dat,aes(x=value)) +
geom_bar(position="dodge",binwidth=0.5,aes(fill=name))+
theme_bw()+
scale_fill_brewer(palette="RdBu")+
facet_wrap(~code)
可能会有所帮助。您也可以使用条/箱之间的间距。