我正在尝试从数据框创建一个如下所示的图:
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")
我的第一个问题是我不知道如何在此代码中实现总和。我可以创建两个单独的图,但如果我可以将两个条都放入一个图中,那就更好了。
我还使用上面的数据框创建了一个堆栈条形图,但结果如下:
因为我对一个属的值非常大,所以ggplot将始终创建一个双列堆积条。无论如何都可以绕过那个?
答案 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")