假设我有一个数据框:
df<-structure(list(predworker = c(1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 4,
4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 8, 8,
8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10,
11, 11, 11, 11, 11
), worker = c(1, 14, 11, 19, 13, 23, 3, 15, 20, 6, 15, 3, 5,
4, 22, 5, 21, 11, 14, 4, 15, 23, 6, 20, 3, 17, 16, 8, 9, 7, 8,
17, 9, 16, 7, 17, 9, 8, 16, 7, 10, 19, 2, 15, 14, 14, 1, 11,
19, 13), finalratio = c(0.358338156170776, 0.328697413978311,
0.200283479825366, 0.0634027658799677, 0.049278184145579, 0.245483741112573,
0.216351263581975, 0.211285529819829, 0.171813670019988, 0.155065795465635,
0.216637792442049, 0.21365067362223, 0.20254559121035, 0.184813787488195,
0.182352155237176, 0.257680316012908, 0.233934275233779, 0.18618378722994,
0.173241645742261, 0.14895997578111, 0.295633225885233, 0.197824577675154,
0.173926460086197, 0.169883366487268, 0.162732369866148, 0.312634332494825,
0.213471605336063, 0.168500990861721, 0.156199312722058, 0.149193758585333,
0.288139828063799, 0.249716321272007, 0.228189414450808, 0.132448859555662,
0.101505576657724, 0.28062982129018, 0.24896481457126, 0.185822099676468,
0.175529116141424, 0.109054148320668, 0.843396823680576, 0.0488581484138975,
0.0419903739183709, 0.0332313337137541, 0.0325233202734015, 0.354288383060293,
0.308159669367751, 0.222981515774462, 0.0731493536310783, 0.0414210781664159
), rank = c(1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L,
5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L,
1L, 2L, 3L, 4L, 5L)),
.Names = c("predworker", "worker", "finalratio", "rank"),
row.names = c(NA, -50L), class = c("grouped_df", "tbl_df","tbl", "data.frame"),
vars = "predworker", drop = TRUE,
indices = list( 0:4, 5:9, 10:14, 15:19, 20:24, 25:29, 30:34, 35:39, 40:44,
45:49),
group_sizes = c(5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L),
biggest_group_size = 5L, labels = structure(list(predworker = c(1, 3, 4, 5, 6, 7, 8, 9, 10, 11)),
row.names = c(NA, -10L), class = "data.frame", vars = "predworker",
drop = TRUE, .Names = "predworker"))
它看起来如下:
predworker worker finalratio rank
<dbl> <dbl> <dbl> <int>
1. 1. 0.358 1
1. 14. 0.329 2
1. 11. 0.200 3
1. 19. 0.0634 4
1. 13. 0.0493 5
3. 23. 0.245 1
我正在尝试使用ggplot2
制作堆积条形图。我正在寻找类似于这个的东西。
ggplot(df, aes(x = factor(predworker) ,y = finalratio, fill = factor(rank))) + geom_bar(stat = "identity")
然而,还有一些我不知道如何添加到这个图中的细节:
我想按排名对每个条形图进行排序(即我希望从底部开始最长的条形图在最前面。与现在相反)。
如何在同一图中做两个子图。比如说我想要第一个子图中的前6个条形图和另一个子图中的其余条形图,但是它们是独立的(类似于ggplot中的facet)。
如何为每个类别的每个条形图写入一个值?例如,对于每个
rank
,我想在每个子条形图的限制范围内写入相应的finalratio
和worker
(其他列)值。
facet_grid(facet ~ .)
- neilfwsfacet_wrap(~facet, scales = "free_x", ncol = 1)
- neilfws