Порядок и цвет баров в ggplot2 barplot

У меня очень раздражающая проблема с гистограммой, созданной с использованиемggplot2, Ранее было задано несколько похожих вопросов, но после просмотра примера кода я не могу понять, что я делаю неправильно.

Я хотел бы сделать график так, чтобы столбцы были расположены в следующем порядке на основе ихBiogeographic.affinity: (Сверху вниз = Бассиан, Широкое распространение, Торрезиан и Эйрей). Цвета для столбцов должны быть следующими: (Bassian = drakgrey, Widespread = lightgrey, Torresian = белый и Eyrean = черный).

Вот как выглядит набор данных:

  biogeo
       Site Biogeographic.affinity Rank Number.of.species Total.Species    Percent
    1     A                Bassian    1                 1           121  0.8264463
    2     A                 Eyrean    4                39           121 32.2314050
    3     A              Torresian    3                62           121 51.2396694
    4     A             Widespread    2                19           121 15.7024793
    5    DD                Bassian    1                 1           128  0.7812500
    6    DD                 Eyrean    4                46           128 35.9375000
    7    DD              Torresian    3                63           128 49.2187500
    8    DD             Widespread    2                18           128 14.0625000
    9   E_W                Bassian    1                 1           136  0.7352941
    10  E_W                 Eyrean    4                54           136 39.7058824
    11  E_W              Torresian    3                65           136 47.7941176
    12  E_W             Widespread    2                16           136 11.7647059
    13   KS                Bassian    1                 2           145  1.3793103
    14   KS                 Eyrean    4                63           145 43.4482759
    15   KS              Torresian    3                62           145 42.7586207
    16   KS             Widespread    2                18           145 12.4137931
    17 Z_Ka                Bassian    1                 1           110  0.9090909
    18 Z_Ka                 Eyrean    4                64           110 58.1818182
    19 Z_Ka              Torresian    3                31           110 28.1818182
    20 Z_Ka             Widespread    2                14           110 12.7272727

Это код, который я написал до сих пор (включая некоторые из моих неудачных попыток исправить проблему).

 ggplot(data=biogeo, aes(x=Site, y=Percent, fill=Biogeographic.affinity)) + geom_bar(stat="identity", colour="black")+ 
  scale_fill_grey() + ylab("Percent") + xlab("Location") +       
  theme_bw()+ theme(panel.grid.minor = element_blank()) 

Это дает базовый график, но цвета и порядок все еще неправильны. Поправить порядок я пытался, но это ничего не изменило (РАЗРУШЕНО)!

newone <- transform(biogeo, Biogeographic.affinity  = factor(Biogeographic.affinity ), Rank = factor(Rank, levels = 1:4))

Что касается изменения цвета, я пробовал и, кажется, работает, но все это выглядит, как будто порядок все еще не так!

cols<- c("Bassian"="darkgrey","Widespread"="lightgrey", "Torresian"="white", "Eyrean"="black") #designates the colors of the bars 
ggplot(data=newone, aes(x=Site, y=Percent, fill=Biogeographic.affinity)) + geom_bar(stat="identity", colour="black")+ 
  scale_fill_manual(values = cols) + ylab("Percent") + xlab("Location") +       
  theme_bw()+ theme(panel.grid.minor = element_blank()) 

пожалуйста помоги.

Ответы на вопрос(1)

Ваш ответ на вопрос