【发布时间】:2016-08-10 15:22:48
【问题描述】:
我的问题是能够在 R 的条形图中显示 4 个分类变量。
这 4 个分类变量各有 2 个或更多级别。我的想法是使用ggplot 使用geom_bar 为3 个类别中的每一个创建单独的条形图,每个级别的计数将被堆叠。然后我会使用facet_wrap 然后将其按第 4 类分开。
数据如下:
Species Crown_Class Life_class Stem_Category
E. obliqua Suppressed Standing live Large stems
E. rubida Intermediate Standing live Large stems
E. obliqua Suppressed Standing live Small stems
E. obliqua Suppressed Standing live Small stems
E. rubida Suppressed Standing live Large stems
E. radiata Suppressed Standing live Small stems
E. obliqua Dominant Standing live Small stems
E. obliqua Suppressed Standing live Small stems
E. radiata Suppressed Standing live Large stems
E. rubida NA Standing dead Large stems
E. rubida Intermediate Standing live Large stems
我想到的图表显示了三个类别中的每一个的堆叠条,然后按三分之一分组。对于给定的数据,将为每个物种显示 Crown_Class、life_class 和 Stem_Category 的单独条形。
我已经尝试了几个小时,并且可以使用此代码进行单独的绘图(我将数据分成 3 个单独的数据框来执行此操作:
ggplot(data= cc, aes(x= Species, fill = Crown_Class))+
geom_bar(position='stack')
ggplot(data=lc, aes(x = Species, fill = Life_class))+
geom_bar(position ='stack')
ggplot(data=sc, aes(x = Species, fill = Stem_Category))+
geom_bar(position ='stack')
这个想法是做这样的事情:
ggplot()+
geom_bar(data= cc, aes(x = Species, fill = Crown_Class),
position='stack') +
geom_bar(data=lc, aes(x = Species, fill = Life_class),
position ='dodge')+
facet_wrap(~Species)
但结果不是我想的那样。第二个情节有效地覆盖了第一个情节。
如果有任何帮助,我将不胜感激。
【问题讨论】:
-
就这样,你如何处理 NA?
-
你可以试试facet_grid
-
抱歉 - 我的图片有点错误。刚刚改了。 @ArtificialBreeze,第二个情节覆盖了第一个情节 - 你可以看到后面的颜色。回复:NA"s 这是另一个问题 - 使用
na.rm = TRUE可能是这样。 -
谢谢@bouncyball,但`facet_grid'会给我另一个块。目的是在 3 个方面获得 3 个条形。
-
好的,我以为你不处理它们,这有时会导致情节出现问题