Я думаю, это то, что вы просите
data_long$Species <- factor(data_long$Species, levels = unique(data_long$Species))
ggplot(data_long, aes(fill=Superfamily, y=Distrubution, x=Species)) + geom_bar(position="dodge2", stat="identity") + theme(axis.text.x = element_text(face = "italic"))
Если ggplot получает фактор, он будет использовать порядок уровней в качестве порядка осей. Когда дело доходит до шрифтов, вы изменяете это в аргументе темы.
- edit -
Чтобы получить суперсемейство в том же порядке, что и для ввода, вам нужно будет создать факторкак мы делали с именем вида.
data_long$Superfamily<- factor(data_long$Superfamily, levels = data$Superfamily)
Отказ от использования пакета readxl для чтения листа Excel в R, это должно сработать для изменения названия вида:
colnames(data)[2:5] <- c("Alpha Drom", "Beta Bactria", "Gamma Feru", "Delta Paos")
Добавьте эту строку перед созданием data_long.