2012-04-05 24 views
62

¿Cómo puedo mover una leyenda ggplot2 a la parte inferior de la gráfica y girarla horizontalmente?leyenda ggplot2 en la parte inferior y horizontal

Código de ejemplo:

library(reshape2) # for melt 
df <- melt(outer(1:4, 1:4), varnames = c("X1", "X2")) 
p1 <- ggplot(df, aes(X1, X2)) + geom_tile(aes(fill = value)) 
p1 + scale_fill_continuous(guide = guide_legend()) 

deseado (aproximado) Resultado: enter image description here

Respuesta

78

Si desea mover la posición de la leyenda por favor utilice el siguiente código:

library(reshape2) # for melt 
df <- melt(outer(1:4, 1:4), varnames = c("X1", "X2")) 
p1 <- ggplot(df, aes(X1, X2)) + geom_tile(aes(fill = value)) 
p1 + scale_fill_continuous(guide = guide_legend()) + 
    theme(legend.position="bottom") 

Esto debería darle la des resultado obtenido Legend at bottom

+0

Cómo sabe si es posible dibujar una barra de inscripción continua en el fondo? (así que no con el número entre ellos, sino arriba). Gracias. – Janvb

+3

Con el 'ggplot' actual, esto me da la advertencia: '' opts 'está en desuso. Use 'tema' en su lugar. (Obsoleto, se utilizó por última vez en la versión 0.9.1) '. Reemplazar 'opts' por' theme' funciona. – krlmlr

+0

Sí, anticipo que hay un cambio en el funcionamiento interno de 'ggplot' –

17

Esto no le da exactamente lo que estaba pidiendo, pero al menos poner los colores juntos:

+theme(legend.position="bottom",legend.direction="vertical") 
+0

Si bien esto puede responder teóricamente a la pregunta, [sería preferible] (// meta.stackoverflow.com/q/ 8259) para incluir las partes esenciales de la respuesta aquí y proporcionar el enlace de referencia. –

Cuestiones relacionadas