I’m a novice in R. Here’s my issue: I try to display a plot of rugby’s game sequence. Thus, in my tibble I’ve specific orders of the actions that are not respected in the visualization. Here’s a sample below:
dput(sequences)
structure(list(Equipes = c("MTB", "MTB", "MTB", "MTB", "MTB",
"MTB", "VR", "VR", "VR", "MTB", "MTB", "VR", "MTB", "USON", "USON",
"MTB", "USON", "MTB", "MTB", "MTB", "USON", "MTB", "USON", "USON",
"MTB", "USON", "MTB", "USON", "MTB", "USON", "BRIVE", "MTB",
"BRIVE", "MTB", "BRIVE", "MTB", "MTB", "BRIVE", "BRIVE", "BRIVE",
"BRIVE", "MTB", "BRIVE", "MTB", "BRIVE", "BRIVE", "MTB", "MTB",
"MTB", "BRIVE", "BRIVE", "BRIVE", "MTB", "BRIVE", "BRIVE", "MTB",
"BRIVE", "MTB", "MTB", "BRIVE", "BRIVE", "MTB", "BRIVE", "MTB",
"MTB", "VANNES", "VANNES", "VANNES", "VANNES", "VANNES", "MTB",
"VANNES", "MTB", "VANNES", "VANNES", "MTB", "VANNES", "MTB",
"VANNES", "MTB", "VANNES", "MTB", "VANNES", "MTB", "VANNES",
"VANNES", "VANNES", "VANNES", "MTB", "VANNES", "MTB", "VANNES",
"VANNES", "VANNES", "ROUEN", "MTB", "ROUEN", "ROUEN", "MTB",
"MTB", "ROUEN", "MTB", "MTB", "MTB", "MTB", "MTB", "ROUEN", "MTB",
"MTB", "ROUEN", "MTB", "ROUEN", "MTB", "ROUEN", "MTB", "ROUEN",
"MTB", "ROUEN", "ROUEN", "MTB", "MTB", "ROUEN", "MTB", "ROUEN",
"ROUEN", "MTB", "ROUEN", "ROUEN", "MTB"), Duree = c(50, 28, 22,
2, 26, 40, 3, 46, 3, 5, 7, 60, 14, 30, 2, 17, 42, 40, 34, 23,
12, 17, 38, 1, 13, 9, 3, 32, 4, 49, 21, 28, 7, 23, 3, 34, 3,
37, 19, 22, 3, 35, 33, 3, 35, 12, 9, 35, 1, 38, 40, 4, 6, 10,
3, 47, 57, 90, 2, 13, 3, 1, 14, 29, 15, 78, 22, 29, 20, 15, 2,
2, 5, 10, 8, 85, 19, 24, 8, 1, 20, 6, 7, 1, 15, 23, 12, 10, 40,
3, 2, 16, 26, 30, 54, 6, 49, 1, 35, 8, 28, 70, 18, 17, 10, 5,
28, 40, 29, 2, 6, 24, 3, 25, 3, 4, 3, 41, 10, 37, 30, 10, 2,
10, 27, 19, 18, 12, 33), Outcome = structure(c(1L, 2L, 3L, 2L,
4L, 5L, 6L, 4L, 2L, 3L, 2L, 2L, 3L, 2L, 2L, 4L, 6L, 4L, 7L, 6L,
5L, 4L, 1L, 8L, 2L, 6L, 2L, 3L, 5L, 3L, 6L, 5L, 6L, 6L, 5L, 3L,
2L, 3L, 2L, 3L, 1L, 3L, 6L, 6L, 4L, 6L, 3L, 2L, 1L, 3L, 2L, 5L,
6L, 4L, 5L, 4L, 6L, 1L, 1L, 4L, 1L, 6L, 2L, 3L, 9L, 4L, 1L, 4L,
2L, 5L, 6L, 6L, 6L, 1L, 3L, 2L, 6L, 6L, 6L, 2L, 5L, 5L, 6L, 6L,
3L, 1L, 1L, 2L, 6L, 6L, 6L, 8L, 2L, 3L, 6L, 5L, 4L, 5L, 3L, 6L,
6L, 2L, 1L, 3L, 2L, 6L, 2L, 4L, 6L, 6L, 2L, 6L, 6L, 6L, 6L, 6L,
2L, 10L, 3L, 3L, 5L, 6L, 2L, 4L, 6L, 1L, 4L, 2L, 4L), levels = c("MELEE",
"TOUCHE", "ESSAI", "PENALITE", "INTERCEPTION", "JAP", "PENALITE ADV",
"ESSAI PEN", "DROP", "A LA MAIN", "PENALITE RATEE", "COUP FRANC",
"SORTIE", "JEU PIED RAPIDE", "MELLE"), class = "factor"), Journee = c(1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5), ...5 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA), Sequence = c(1, 1, 1, 2, 2, 3, 3, 3, 4,
4, 5, 5, 5, 6, 6, 6, 7, 7, 8, 8, 8, 8, 9, 8, 9, 9, 9, 9, 10,
10, 11, 11, 11, 11, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 15,
16, 16, 17, 17, 17, 18, 18, 18, 18, 19, 19, 20, 20, 20, 20, 21,
21, 21, 21, 22, 22, 23, 23, 24, 24, 24, 24, 24, 24, 24, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 25, 26,
26, 27, 27, 27, 28, 28, 29, 29, 29, 29, 29, 30, 30, 30, 30, 31,
31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 33, 33, 33, 33, 34,
34, 34, 35, 35), Equipe = c("MTB", "MTB", "MTB", "MTB", "MTB",
"MTB", "ADV", "ADV", "ADV", "MTB", "MTB", "ADV", "MTB", "ADV",
"ADV", "MTB", "ADV", "MTB", "MTB", "MTB", "ADV", "MTB", "ADV",
"ADV", "MTB", "ADV", "MTB", "ADV", "MTB", "ADV", "ADV", "MTB",
"ADV", "MTB", "ADV", "MTB", "MTB", "ADV", "ADV", "ADV", "ADV",
"MTB", "ADV", "MTB", "ADV", "ADV", "MTB", "MTB", "MTB", "ADV",
"ADV", "ADV", "MTB", "ADV", "ADV", "MTB", "ADV", "MTB", "MTB",
"ADV", "ADV", "MTB", "ADV", "MTB", "MTB", "ADV", "ADV", "ADV",
"ADV", "ADV", "MTB", "ADV", "MTB", "ADV", "ADV", "MTB", "ADV",
"MTB", "ADV", "MTB", "ADV", "MTB", "ADV", "MTB", "ADV", "ADV",
"ADV", "ADV", "MTB", "ADV", "MTB", "ADV", "ADV", "ADV", "ADV",
"MTB", "ADV", "ADV", "MTB", "MTB", "ADV", "MTB", "MTB", "MTB",
"MTB", "MTB", "ADV", "MTB", "MTB", "ADV", "MTB", "ADV", "MTB",
"ADV", "MTB", "ADV", "MTB", "ADV", "ADV", "MTB", "MTB", "ADV",
"MTB", "ADV", "ADV", "MTB", "ADV", "ADV", "MTB")), class = c("grouped_df",
"tbl_df", "tbl", "data.frame"), row.names = c(NA, -129L), groups = structure(list(
Sequence = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35), .rows = structure(list(1:3, 4:5,
6:8, 9:10, 11:13, 14:16, 17:18, c(19L, 20L, 21L, 22L,
24L), c(23L, 25L, 26L, 27L, 28L), 29:30, 31:36, 37:38,
39:40, 41:42, 43:45, 46:47, 48:50, 51:54, 55:56, 57:60,
61:64, 65:66, 67:68, 69:75, c(76L, 77L, 78L, 79L, 80L,
81L, 82L, 83L, 84L, 85L, 92L), c(86L, 87L, 88L, 89L,
90L, 91L, 93L, 94L), 95:97, 98:99, 100:104, 105:108,
109:119, 120L, 121:124, 125:127, 128:129), ptype = integer(0), class = c("vctrs_list_of",
"vctrs_vctr", "list"))), row.names = c(NA, -35L), .drop = TRUE, class = c("tbl_df",
"tbl", "data.frame")))
And my code:
sequences <- actions %>%
group_by(Sequence) %>%
filter(any(Outcome %in% c("ESSAI","ESSAI PEN", "PENALITE", "DROP"))) |>
mutate(Outcome = factor(Outcome, levels = unique(Outcome))) |>
filter(Journee <= 5)
plot <- ggplot(sequences) +
aes(x = Sequence, y = Duree) +
geom_col(aes(fill = Outcome),color = "black", position = "fill") +
geom_text(aes(label = Duree, group = Outcome), position = position_fill(vjust = 0.5)) +
coord_flip() +
facet_wrap(vars(Journee), nrow = 5, scales = "free_y") +
theme_minimal()
print(plot)
Below a picture of what I got.
enter image description here
As seen on my picture “ESSAI” or “PENALITE” are unordered. The plot doesn’t respect the tibble”s order. In my tibble, the column “Sequence” ends with “ESSAI”, “PENALITE”, “ESSAI PEN” or “DROP”. I want the plot to display the Sequence in the correct order (the order in my tibble). So, “ESSAI” “DROP”, “PENALITE” or “ESSAI PEN” are always at the right end of the plot. I hope I’m understandable.
I would be grateful for your help!