我想根据条形图中的值重新排列堆叠间隔图中的条形图。我的数据是男性对巢的贡献百分比,所以所有的栏总和为1。我想做的是根据第三名男性的贡献订购酒吧。
我的数据看起来像这样
Nest.ID Percentage Male
6_2012 0.611111111 Primary
6_2012 0.222222222 Secondary
6_2012 0.166666667 Tertiary
7_2012 0.46875 Primary
7_2012 0.3125 Secondary
7_2012 0.21875 Tertiary
我正在用这段代码创建我的图表:
m <- ggplot()+geom_bar(aes(y=Percentage, x=Nest.ID,
fill=forcats::fct_rev(Male)),
data=males,stat="identity")
我曾尝试使用重新排序功能,但遇到了问题,因为所有嵌套总和为1,而我想通过“第三男性”订购的值是列中的一个因素。
答案 0 :(得分:1)
reorder
效果很好。你正在做一些更具体的事情,取决于两个变量,所以我只需要下拉订单并明确设置它。
my_order = with(males[males$Male == "Tertiary", ], as.character(Nest.ID[order(Percentage)]))
males$Nest.ID = factor(males$Nest.ID, levels = my_order)
作为旁注,请使用geom_col(...)
代替geom_bar(..., stat = "identity")
。