2012-04-05 23 views
62

Come posso spostare una legenda ggplot2 in fondo al grafico e ruotarla orizzontalmente?ggplot2 legenda inferiore e orizzontale

codice di esempio:

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()) 

desiderata (approssimativo) risultato: enter image description here

risposta

78

Se si desidera spostare la posizione della legenda si prega di utilizzare il seguente codice:

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") 

Questo dovrebbe darvi il des risultato ired. Legend at bottom

+0

fai a sapere se è possibile disegnare una barra leggenda continua sul fondo? (quindi non con il numero in mezzo ma in alto). Grazie. – Janvb

+3

Con l'attuale 'ggplot', questo mi dà l'avviso' 'opts' è deprecato. Usa invece 'tema'. (Obsoleto, usato per ultimo nella versione 0.9.1) '. Sostituisce 'opts' di' theme' funziona. – krlmlr

+0

Sì, prevedo che ci sia un cambiamento nel funzionamento interno di 'ggplot' –

17

Questo non ti dà esattamente quello che stavi chiedendo, ma almeno mettere i colori insieme:

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

Sebbene questo possa teoricamente rispondere alla domanda, [sarebbe preferibile] (// meta.stackoverflow.com/q/ 8259) per includere qui le parti essenziali della risposta e fornire il link per riferimento. –

Problemi correlati