2
我的数据集是这样的:条形图中ggplot与不同数量的酒吧每组
`DSET<-data.frame(cbind(c(rep("V1",3),rep("V2",3),"V3"),
c(rep(c("X1","X2","X3"),2),"X1"),
c(rep(1,7))))`
`names(DSET)<-c("A","B","C")`
`DSET[,3]<-c(1,-2,1,3,-1,2,-3)`
有三个分组变量(V1,V2,V3)和每组三个变量(X1,X2,X3)。问题是组3(V3)只有一个变量(X1),但缺少另外两个变量。如果我想制作一个条形图,现在一切正常,尽管第3组的栏比第一组和第二组的栏大三倍。
`Grph<-ggplot(DSET,aes(x=A,y=C,fill=B))`
`dodge <- position_dodge(width=0.9)`
`Grph+geom_bar(position=dodge)`
我试图与缺乏组和X2和X3的值0添加两行和它的工作原理有点。
`DSET<-data.frame(cbind(c(rep("V1",3),rep("V2",3),rep("V3",3)),
c(rep(c("X1","X2","X3"),3)),c(rep(1,9))))`
`names(DSET)<-c("A","B","C")`
`DSET[,3]<-c(1,-2,1,3,-1,2,-3,0,0)`
`Grph<- ggplot(DSET,aes(x=A,y=C,fill=B))`
`dodge <- position_dodge(width=0.9)`
`Grph+geom_bar(position=dodge)`
但我真的想实现的是,根据每个组都有通过保持线条的宽度不变的条数调整组大小的图。有没有办法做到这一点?
期待您的帮助!
谢谢布赖恩!我实际上在使用facet_grids之前尝试过使用aes(x = A,y = C,fill = B),它给出了与第一个图形相同的结果。但现在它起作用了,太棒了!你也知道如何使用geom_abline在x = 0 w/o处绘制一条线吗? geom_abline将线条略微拉高,使其看起来很奇怪,特别是在我的真实图形中,我有误差条,直到x = 0。 – Latrunculia 2012-02-02 09:34:45
我解决了它:我必须指定斜率和截距而不是x = 0。不过,我想知道它会发生什么变化。 Ps .:顺便说一句 - 感谢您的代码编辑! – Latrunculia 2012-02-02 09:44:42
你也可以考虑'geom_hline(yintercept = 0)'为水平线。 – 2012-02-02 16:23:10