2013-01-10 12 views
37

dati:Fissaggio l'ordine di sfaccettature in ggplot

type size amount 
T 50%  48.4  
F 50%  48.1  
P 50%  46.8  
T 100% 25.9  
F 100% 26.0  
P 100% 24.9  
T 150% 21.1  
F 150% 21.4  
P 150% 20.1  
T 200% 20.8  
F 200% 21.5  
P 200% 16.5 

ho bisogno di tracciare un grafico a barre dei dati di cui sopra utilizzando ggplot (asse x -> "tipo", asse y -> "quantità", raggruppa per "dimensione"). Quando ho usato il codice seguente, non ricevo la variabile "type" e anche "size" nell'ordine mostrato nei dati. Si prega di vedere la figura. Ho usato il seguente codice per questo.

ggplot(temp, aes(type, amount , fill=type, group=type, shape=type, facets=size)) + geom_bar(width=0.5, position = position_dodge(width=0.6)) + facet_grid(.~size) + theme_bw() + scale_fill_manual(values = c("darkblue","steelblue1","steelblue4"), labels = c("T", "F", "P")) 

enter image description here.

Per risolvere il problema dell'ordine, ho utilizzato un metodo di fattore per la variabile "tipo" utilizzando quanto segue. Si prega di vedere anche la figura.

temp$new = factor(temp$type, levels=c("T","F","P"), labels=c("T","F","P")) 

enter image description here

Tuttavia, ora non so come risolvere l'ordine per la variabile "dimensione". Dovrebbe essere del 50%, 100%. 150% e 200%.

risposta

57

Fai la tua dimensione un fattore nella vostra dataframe da:

temp$size_f = factor(temp$size, levels=c('50%','100%','150%','200%')) 

quindi modificare le facet_grid(.~size)-facet_grid(.~size_f)

Poi trama: enter image description here

I grafici sono ora nell'ordine corretto.

+1

Grazie. Sono davvero uno stupido. :-) – samarasa

+0

felice di aiutare :) – Harpal

+0

@Harpal Hai un commento sulla tua risposta sotto forma di un'altra risposta. Dai un'occhiata –

Problemi correlati