我设法将我的初始数据集转换为这种形式:
ElemId total_count coef_true coef_false coef_ratio
1 a1 2 2 0 1
2 a2 4 4 0 1
3 a3 1 1 0 1
4 a4 5 5 0 1
5 a5 1 1 5 1
6 a6 4 4 0 1
7 a7 4 4 3 1
8 a8 2 2 2 1
9 a9 3 3 1 1
10 a10 1 1 4 1
现在我想要实现的是绘制堆积条形图,使用ggplot,显示单个条上的coef_true和coef_false,同时通过coef_ratio 保留顺序。有没有办法在不进一步转换数据集的情况下完成?
编辑。修改数据没问题,虽然我尝试使用melt(valves, measure.vars=c("init_true", "init_false"))
融合,但条形图似乎松散了coef_ratio的排序。
答案 0 :(得分:1)
如果我理解正确,您希望将ElemId
上的coef值绘制为ElemId
重新排序的coef_ratio
。如果是这种情况,您可以执行以下操作:
library(tidyverse)
df %>%
gather(key, value, -c(coef_ratio, ElemId, total_count)) %>%
ggplot(aes(reorder(ElemId, coef_ratio), value)) +
geom_col(aes(fill = key)) +
labs(x = "ElemId reordered by coef_ratio")
我修改了数据,以便ElemId
a10
的{{1}}为0,以显示x轴的重新排序。
coef_ratio