пример данных:рода гистограмма по сумме значений в ggplot
player <- c("a", "b", "a", "b", "c",
"a", "a", "b", "c", "b",
"c", "a", "c", "c", "a")
is.winner <- c(TRUE, FALSE, TRUE, TRUE, TRUE,
FALSE, TRUE, TRUE, TRUE, FALSE,
TRUE, TRUE, TRUE, TRUE, FALSE)
df <- data.frame(player, is.winner)
мой первый граф выглядит как этот
ggplot(data=df, aes(x=player, y=as.numeric(is.winner))) +
geom_bar(stat="summary", fun.y=sum) +
coord_flip()
То, что я хотел бы сделать, это Сортируйте df $ player на сумму значений «TRUE», так что это выглядит примерно так:
Я понимаю, что я мог бы использовать что-то вроде этого:
df$player <- factor(df$player, levels=c("b", "a", "c"))
Но фактические данные имеет гораздо больше «имена игроков». Кроме того, я хотел бы что-то подобное с процентами выигрыша и т. Д. Таким образом, автоматическая сортировка будет отличной. Пример процента выигрыша ниже
df$is.winner <- factor(df$is.winner, levels=c("TRUE", "FALSE"))
df$player <- factor(df$player, levels=c("c", "b", "a"))
library(scales)
library(RColorBrewer)
ggplot(data=df, aes(x=player)) +
geom_bar(aes(fill=is.winner),position='fill')+
scale_y_continuous(labels=percent)+
scale_fill_brewer(palette="Set2") +
coord_flip()
Благодаря это именно то, что я искал. Если бы увидели переупорядочивание в нескольких поисках, но до сих пор это не знак. – user3564760
У меня возникла проблема с вышеперечисленным выражением: 'x = reorder (player, df $ is.winner ==" TRUE ", sum', поскольку общее количество выигрышей не обязательно означает больший процент выигрыша Есть ли простое решение? – user3564760
да, измените 'sum' на' mean' – while