为了账号安全,请及时绑定邮箱和手机立即绑定

ggplot2-带有堆栈和闪避的条形图

ggplot2-带有堆栈和闪避的条形图

泛舟湖上清波郎朗 2019-10-19 17:13:33
我试图创建一个条形图,使用ggplot2一个变量在其中堆叠而另一个变量在其中躲避。这是一个示例数据集: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))我想创建一个条形图,其中x=treatment,y=total堆叠变量为type和躲避变量为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")但不是两者!感谢任何可以提供建议的人。
查看完整描述

3 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

这是使用构面而不是躲避的另一种选择:


ggplot(df, aes(x = year, y = total, fill = type)) +

    geom_bar(position = "stack", stat = "identity") +

    facet_wrap( ~ treatment)

//img1.sycdn.imooc.com//5daad3d900013f7308590414.jpg

根据泰勒的建议更改: + theme(panel.margin = grid::unit(-1.25, "lines"))

//img1.sycdn.imooc.com//5daad3dd0001b64310510498.jpg

查看完整回答
反对 回复 2019-10-19
?
料青山看我应如是

TA贡献1772条经验 获得超7个赞

最接近的方法是在dodged条形图周围绘制边框以突出显示堆积的type值。


ggplot(df, aes(treatment, total, fill = year)) + 

geom_bar(stat="identity", position="dodge", color="black")

//img1.sycdn.imooc.com//5daad3e700017edf08590414.jpg

查看完整回答
反对 回复 2019-10-19
  • 3 回答
  • 0 关注
  • 750 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信