R(ggplot2) - 堆积条形图问题

时间:2016-03-14 15:26:49

标签: r ggplot2

我正在尝试从数据框创建一个如下所示的图:

  management depth id          genus rep1 rep2 rep3 rep4 sum
1         OM     A  1     alternaria    3    0    0    0   3
2         OM     A  2    aspergillus    0    0    0    0   0
3         OM     A  3     chaetomium    0    0    0    0   0
103       PM     A  1     alternaria    0    0    0    0   0
104       PM     A  2    aspergillus    4    1    4   35  44
105       PM     A  3     chaetomium    0    0    0    7   7

我想在x轴上创建一个堆积条形图,填充属,y代表总和。我用了

stack<-ggplot(df, aes(x=management, fill=genus)) + geom_bar(position="fill", color="white")

我的第一个问题是我不知道如何在此代码中实现总和。我可以创建两个单独的图,但如果我可以将两个条都放入一个图中,那就更好了。

我还使用上面的数据框创建了一个堆栈条形图,但结果如下: plot

因为我对一个属的值非常大,所以ggplot将始终创建一个双列堆积条。无论如何都可以绕过那个?

1 个答案:

答案 0 :(得分:0)

如果您提供了预期的结果,那么定制解决方案会更容易,但我相信这正是您所寻找的?

library(ggplot2)
df <- read.table(textConnection("
 row.id management depth id          genus rep1 rep2 rep3 rep4 sum
1         OM     A  1     alternaria    3    0    0    0   3
2         OM     A  2    aspergillus    0    0    0    0   0
3         OM     A  3     chaetomium    0    0    0    0   0
103       PM     A  1     alternaria    0    0    0    0   0
104       PM     A  2    aspergillus    4    1    4   35  44
105       PM     A  3     chaetomium    0    0    0    7   7"), header=TRUE, stringsAsFactors = FALSE) 

ggplot(df, aes(x=management, y=sum, fill=genus)) + 
geom_bar( color="white", stat="identity")

enter image description here