尝试创建一个堆叠的条形图,在y轴上具有深度(以米为单位),在x轴上具有不同的类别,然后填充丰度值。但是,ggplot2会不断求和所有深度值(a + b + c),以使y轴不正确。
我知道我需要指定geom_bar(stat =“ identity”),但这似乎与y轴混淆了,因为所有组的值都相同,但丰度却不同。
##Data:
Phylum Depth Abundance
Cnidaria 110 6
Cnidaria 90 12
Cnidaria 70 1
Cnidaria 50 4
Cnidaria 30 3
Cnidaria 20 1
Cnidaria 120 13
Cnidaria 80 3
Cnidaria 60 12
Arthropada 110 105
Arthropada 90 493
Arthropada 70 23
Arthropada 50 3
Arthropada 30 10
Arthropada 20 42
Arthropada 120 57
Arthropada 80 3
Arthropada 60 7
##Current plot:
ggplot(data = data, aes(x = Phylum, y = Depth, fill = Abundance)) +
geom_bar(stat = "identity")
当最高值应仅为120 m时,当前图输出y轴数据总计为600 m。
答案 0 :(得分:0)
好消息是,我认为不是您的代码给您带来麻烦。相反,我认为您可能要考虑另一种显示数据的方式。
data = data.frame("Phylum" = c("Cnidaria", "Cnidaria", "Cnidaria", "Cnidaria","Cnidaria", "Cnidaria", "Cnidaria", "Cnidaria", "Cnidaria", "Arthropada", "Arthropada", "Arthropada", "Arthropada", "Arthropada", "Arthropada", "Arthropada", "Arthropada", "Arthropada"), "Depth" = c(110, 90, 70, 50, 30, 21, 120, 80, 60, 110, 90, 70, 50, 30, 20, 120, 80, 60), "Abundance" = c(6, 12, 1, 4, 3, 1, 13, 3, 12, 105, 493, 23, 3, 10, 42, 57, 3, 7))
调整y轴的原因是因为这些值基本相同,这由类别的平均值表示:
aggregate(.~Phylum, data, mean)
Phylum Depth Abundance
1 Arthropada 70.00000 82.555556
2 Cnidaria 70.11111 6.111111
当您切换“深度”和“丰度”时,将获得与您期望的图更相似的图:
p = ggplot(data = data, aes(x = Phylum, y = Abundance, fill = Depth))
p+geom_bar(stat = "identity")
您可能要考虑其他情节。例如,您可以通过在x轴或y轴上使用“丰度和深度”,然后填写“ Phylum”类别来获得更好的信息。