ggplot2 – 与堆叠和闪避条形图

我正在尝试使用ggplot2创build一个barplot,在这里我通过一个variables进行堆栈,然后通过另一个variables进行躲避。

这是一个示例数据集:

 df=data.frame( year=rep(c("2010","2011"),each=4), treatment=rep(c("Impact","Control")), type=rep(c("Phylum1","Phylum2"),each=2), total=sample(1:100,8)) 

我想创build一个barplot,其中x=treatmenty=total ,堆栈variables是type ,闪避variables是year 。 当然,我可以做一个或另一个:

 ggplot(df,aes(y=total,x=treatment,fill=type))+geom_bar(position="dodge",stat="identity") ggplot(df,aes(y=total,x=treatment,fill=year))+geom_bar(position="dodge",stat="identity") 

但不是两个! 感谢任何能提供build议的人。

这里有一个替代方法,使用faceting而不是躲避:

 ggplot(df, aes(x = year, y = total, fill = type)) + geom_bar(position = "stack", stat = "identity") + facet_wrap( ~ treatment) 

在这里输入图像描述

随着泰勒build议的变化:

在这里输入图像描述

你可以得到最接近的是通过在dodged酒吧周围画一个边框来突出堆叠的type值。

 ggplot(df, aes(treatment, total, fill = year)) + geom_bar(stat="identity", position="dodge", color="black") 

在这里输入图像描述