Мне нужно сделать гистограмму на основе двух переменных (points
и type
) с заливкой.
Ниже приведен минимальный пример, я хотел бы видеть очки ранжирование по защитным очкам и ранжирование по точкам в качестве защитника или форварда .
Я пытался ~reorder(names, -c(type, points))
, но это не работает.
name <- c("James Harden","James Harden","Lebron James","Lebron James","Lebron James","Kawhi Leonerd","Kawhi Leonerd","Klay Thompson","Steph Curry","Kevin Durant","Kevin Durant","Chris Paul","Chris Paul")
team <- c("HOU","OKC","LAL","MIA","CLE","SAS","TOR","GSW","GSW","GSW","OKC","HOU","LAC")
points <- c(2000,12000,2000,10000,20000,7000,2000,14000,20000,6000,18000,4000,14000)
type <- c("G","G","F","G","F","G","G","G","G","F","F","G","G")
nba <- data.frame(name,team,points,type)
nba <- nba %>% arrange(desc(type))
ggplot(nba, aes(x = type, y = points, fill = team)) +
geom_bar(stat = 'identity', position = 'stack', color = 'black') +
facet_wrap(~reorder(name,-points), ncol = 1, strip.position = "top") +
coord_flip() + theme_minimal() +
labs(x = "players", y = "points", title = "Rank by points as Guard")
Если он ранжируется по очкам в качестве охранника, я бы хотел видеть Steph Curry
на вершине, Chris Paul
на секунду, James Harden
и Klay
на третьем, Lebron
на пятом, Kawhi
на шестом и KD
внизу.
Если он ранжируется по очкам как защитник или нападающий, я бы хотел видеть Lebron
сверху, KD
секунду и так далее, и так далее.