如何根据两个属性对ggplot中的因子进行排序?
问题描述:
我正在尝试根据每个var1级别的男性+女性总数对此barplot进行重新排序。但是,我在fct_reorder
上做错了,现在它只是根据male
的值total
重新排序。如何根据两个属性对ggplot中的因子进行排序?
library(fct_relabel)
ff <- data.frame(var1=c('a','a','b','b'), var2=c('male', 'female', 'male', 'female'), total=c(40, 60, 30, 90))
ggplot(data= ff, aes(x = fct_reorder(var1, total), y=total, fill=var2)) +
geom_bar(stat = 'identity')
答
您需要使用sum
功能fct_reorder
:默认情况下它使用total
值,而不是总和的中位数:
ggplot(data= ff, aes(x = fct_reorder(var1, total, sum), y=total, fill=var2)) +
geom_bar(stat = 'identity')