Что если вы попробовали что-то подобное?С вашим кодом, ggplot2
группирует их вместе, потому что ось X равна batsman
, и это буквально говорит вам об этом.Но что, если вы сделали ось X какой-то уникальной вещью, не связанной с batsman
или individual_score
?
Я сделал это ниже, присвоив каждой строке произвольный уникальный идентификатор.Я использовал row_number()
, поэтому они просто идут по порядку.Затем я превратил их в фактор (вместо того, чтобы оставить их числовыми), чтобы они хорошо работали со шкалой.
library(tidyverse)
highest_individual_score <- innings %>%
group_by(match_id, batsman) %>%
summarize(individual_score = sum(batsman_runs)) %>%
arrange(desc(individual_score)) %>%
ungroup() %>%
top_n(10, individual_score) %>%
mutate(id = as.factor(row_number()))
Затем я внес небольшие изменения в ваш ggplot2
код:
highest_individual_score %>%
ggplot(aes(x = id, y = individual_score, fill = batsman))+
geom_bar(stat = "identity", show.legend = FALSE)+
scale_x_discrete(
labels = highest_individual_score$batsman,
name = "Batsman"
) +
theme(axis.text.x = element_text(angle = 90))+
labs(y = "Individual Score", title ="Top 10 highest
individual scorer")
По сути, ось X теперь является уникальным идентификатором, поэтому она обрабатывает каждую запись отдельно.Но тогда вы должны пометить ось с игроками с битой, что я и сделал, используя аргумент labels
scale_x_discrete()
.Имеет смысл?