2013-05-18 18 views
15

Sono sconcertato sul motivo per cui i grafici a scatole non stanno ordinando in questa trama:riordino() non riordino correttamente una variabile fattore di ggplot

set.seed(200) 
x <- data.frame(country=c(rep('UK', 10), 
          rep("USA", 10), 
          rep("Ireland", 5)), 
       wing=c(rnorm(25))) 

ggplot(x, aes(reorder(country, wing, median), wing)) + geom_boxplot() 

enter image description here

Come posso ordinare i grafici a scatole base le mediane più alte più basse (da sinistra a destra)?

+3

Perché questo ottiene un down-voto? La domanda dà codice riproducibile e mostra chiaramente lo sforzo. – Roland

risposta

8

Perché non lo hai reso un fattore ordinato. Prova

ggplot(x, aes(reorder(country, wing, median, order=TRUE), wing)) + geom_boxplot() 

enter image description here

+3

incluso 'order = TRUE' sta dando esattamente la stessa trama per me – luciano

+0

Ho aggiunto il risultato che ottengo con il codice. Se vuoi un ordine decrescente devi usare 'function (x) -median (x)'. – Roland

+0

L'azzeramento dell'area di lavoro e il riavvio di R mi hanno dato la stessa trama di – luciano

0
ggplot(x, aes(reorder(country, wing, FUN = median), wing)) + geom_boxplot() 
+0

Sebbene questo codice possa rispondere alla domanda, fornire un contesto aggiuntivo riguardo a come e/o perché risolve il problema migliorerebbe il valore a lungo termine della risposta. – Badacadabra