我正在寻找帮助来在Rstudio中对我的geom_col()条形图进行排序/排序。我没有尝试过任何事情。任何帮助都将非常感激。
这个问题被Gregor标记为重复,但是,引用链接中的问题答案不在此处。
我有以下3列文件,其中包含我想要排序的标题(我只显示前8行):
POPULATION EXCESS_ALLELE_MATCHES_WITH_MBUTI GROUP
Jordanian 1,059 W Asians
BedouinB 937 W Asians
Saudi 894 W Asians
GujaratiD 835 S/SC Asians
Druze 722 W Asians
Iran_Fars 704 W Asians
Pathan 660 S/SC Asians
这是我的R代码工作正常,除了我无法排序:
test <- read.csv(file_name, sep="\t", stringsAsFactor = FALSE,
header = TRUE)
#
ggplot(test, aes(x=POPULATION, y=EXCESS_ALLELE_MATCHES_WITH_MBUTI, fill=GROUP)) +
geom_col() + coord_flip()
点击下方查看我输出的未分类条形图
答案 0 :(得分:1)
您需要将population
变量转换为因子变量,然后按所需顺序重新调整该变量。 forcats
包对此非常有用:
library(tidyverse)
test <- tribble(
~POPULATION, ~EXCESS_ALLELE_MATCHES_WITH_MBUTI, ~GROUP,
"Jordanian" , 1059, "W Asians",
"BedouinB", 937, "W Asians",
"Saudi", 894, "W Asians",
"GujaratiD", 835, "S/SC Asians",
"Druze", 722, "W Asians",
"Iran_Fars", 704, "W Asians",
"Pathan", 660 ,"S/SC Asians"
)
test$POPULATION <- factor(test$POPULATION) %>%
fct_reorder(test$EXCESS_ALLELE_MATCHES_WITH_MBUTI)
ggplot(test, aes(x=POPULATION, y=EXCESS_ALLELE_MATCHES_WITH_MBUTI, fill=GROUP)) +
geom_col() + coord_flip()