2013-06-11 31 views
6

Ho lavorato molto con ggplot2 nelle ultime settimane e mi chiedevo se qualcuno potesse aiutarmi a risolvere questo problema che sto avendo.Distanza tra i riquadrati in ggplot2

Quando compilo il grafico, le mie scatole si toccano. Mi piacerebbe che avessero un po 'di spazio tra loro. C'è un modo per realizzare questo? Sono sicuro che ci sia e io non lo vedo. enter image description here

+2

potresti fornire dati e mostrarci il tuo codice? Saremo in grado di aiutare meglio. In cima alla mia testa, penso che questo abbia qualcosa a che fare con il parametro 'geom_bar (position = position_dodge (.))' Dove '.' = valore compreso tra 0 e 1. – Arun

+0

Forse questo risponderà alla tua domanda? http://stackoverflow.com/questions/6085238/adding-space-between-bars-in-ggplot2?rq=1 – janattack

risposta

16

Facciamo prendere in prestito l'esempio riproducibile fornito da Kevin Ushey in questo question:

set.seed(123) 
dat <- data.frame( 
    x=rep(c(1, 2, 3, 4), times=25), 
    y=rnorm(100), 
    gp=rep(1:2, each=50) 
) 

p <- ggplot(dat, aes(x=factor(x), y=y)) 
p + geom_boxplot(aes(fill = factor(gp))) #example 1 

enter image description here

Poi, seguendo il consiglio di Arun, ho provato il (position = position_dodge(.)) ma con geom_boxplot invece di geom_bar, e ha funzionato.

In questo caso, non è stato necessario modificare la larghezza delle caselle.

Così, modificato l'ultima riga del codice qui sopra per:

p + geom_boxplot(aes(fill = factor(gp)),position=position_dodge(1)) 

ha fatto il trucco.

enter image description here