2016-04-13 16 views
5

Sto tentando di giustificare più legende in ggplot, ma senza alcun vero successo. Quando si visualizza la legenda al di fuori dell'area di stampa (area grigia) la giustificazione è corretta. Tuttavia, quando si visualizzano legende all'interno della regione di trama, le legende sono centrate (e vorrei che fossero allineate a sinistra). Ho provato a seguire this thread ma ancora non funziona correttamente.Giustificazione della legenda multipla

Il mio esempio:

library(ggplot2) 

ggplot(mtcars, aes(wt, mpg)) + 
    geom_point(aes(colour = factor(cyl), size = qsec)) + 
    geom_point(aes(colour = factor(cyl), size = qsec)) + 
    theme(legend.justification = c(1,0), 
     legend.position = c(1,0), 
     legend.margin = unit(0,"lines"), 
     legend.box = "vertical", 
     legend.key.size = unit(1,"lines"), 
     legend.text.align = 0, 
     legend.title.align = 0) 

risposta

5

Abbiamo bisogno di aggiungere legend.box.just = "left" nel vostro esistente theme().

ggplot(mtcars, aes(wt, mpg)) + 
    geom_point(aes(colour = factor(cyl), size = qsec)) + 
    geom_point(aes(colour = factor(cyl), size = qsec)) + 
    theme(legend.box.just = "left", 
     legend.justification = c(1,0), 
     legend.position = c(1,0), 
     legend.margin = unit(0,"lines"), 
     legend.box = "vertical", 
     legend.key.size = unit(1,"lines"), 
     legend.text.align = 0, 
     legend.title.align = 0) 

enter image description here

+0

Grazie per la rapida risposta. Questo ha completamente risolto il mio problema! – Adela

1

Si può provare questo:

library(ggplot2) 
data("mtcars") 
g <- ggplot(mtcars, aes(wt, mpg)) 
g <- g + geom_point(aes(colour = factor(cyl), size = qsec)) 
g <- g + geom_point(aes(colour = factor(cyl), size = qsec)) 
g <- g + theme(legend.justification=c(0,0), legend.position=c(0,0)) 

Per le altre posizioni si può provare da questa documentazione http://www.cookbook-r.com/Graphs/Legends_(ggplot2)/

enter image description here

Probabilmente troverete spiegazione migliore anche nell'ab ove link.

+0

Se guardi da vicino le leggende non sono allineate sul lato sinistro, quello era il problema dell'OP. – zx8754

+0

@ zx8754 Non ti ho preso completamente, vuol dire che le leggende dovrebbero toccare il limite interno dei grafici nel lato sinistro? –

+0

@krishna: Sfortunatamente, il tuo post non risolve il mio problema, perché ho bisogno che entrambe le legende siano allineate a sinistra. Come ha scritto zx8754, se guardi più da vicino, puoi vedere che sono ancora centrati: solo la posizione delle leggende è stata cambiata. zx8754 ha già risolto il mio problema (vedi il post precedente). Comunque, grazie per aver provato! – Adela

Problemi correlati