Хорошо, я не думаю, что это ваш код, который доставляет вам неприятности. Вместо этого, я думаю, вы, возможно, захотите рассмотреть альтернативный способ отображения ваших данных.
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.