我正在尝试使用ggplot2制作R基础图的更好的版本。不仅有一个共同的传说,而且因为我喜欢ggplot2风格和定制。我的数据由3个独立的数据集组成,这些数据集包含几个(但不同的)治疗的相同两组观察值。因此,我想用1个图表生成3个独立的图表,但是具有不同的因子水平。为了说明我的观点在这里的第一个图像是我用R基本到目前为止已经产生: 删除ggplot2中具有多个构面的聚集条形图中的空因子
我试图生成虚拟数据GGPLOT2情节恰好具有相同的结构,我的数据:
foo<-data.frame(c(letters,letters),c(rep('T1',26),rep('T2',26)),
runif(52),rep(c(rep('Ori1',12),rep('Ori2',8),rep('ori3',6)),2))
names(foo)<-c('Treatment','Type','Count','Origin')
a<-ggplot(foo,aes(x = factor(Treatment),y = Count))
a+ facet_grid(Origin~., scales="free_y", space="free") +
geom_bar(stat="identity",aes(fill=factor(foo$Type)),position="dodge")
+theme_bw()+theme(axis.text.x=element_text(angle=60,hjust=1))+coord_flip()
这给我以下不良结果。
我知道的堆栈溢出主题Removing Unused Factors from a Facet in ggplot2和How can I remove empty factors from ggplot2 facets?然而,他们不与群集条形图我试图在这里实现处理,我觉得他们的问题,但是现在不如何解决它。所有的指针都是受欢迎的。
我相信,除非这个问题得到解决(这很复杂),否则您会忽略'coord_flip'并使用'facet_wrap(〜Origin,scales =“free_x”)''。 – joran 2013-04-08 19:54:54
@joran谢谢你的评论,但它并没有解决问题......'coord_flip'并没有真正促成这个问题,我只是将它包括在内,因为我喜欢这种格式的情节。主要问题是如何在各个方面保留'position =“dodge”''。也许我应该清楚地表明,我并不真正想重现基本图,因为我只想让图的本质在ggplot2风格中可用。 – 2013-04-08 20:03:27
我不认为你真的尝试过我所提议的。关键是,目前'coord_flip'并不总是和'scales =“free”'很好地搭配。这是一个已知的问题。 – joran 2013-04-08 20:08:25