2012-04-05 9 views
62

Wie kann ich eine ggplot2-Legende an das Ende der Handlung verschieben und horizontal drehen?ggplot2 Legende nach unten und horizontal

Beispielcode:

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

Gewünschte (ungefähr) Ergebnis: enter image description here

Antwort

78

Wenn Sie die Position der Legende bitte den folgenden Code verwenden verschieben möchten:

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

Dies sollte Ihnen das DES geben Ergebnis. Legend at bottom

+0

Sie wissen, ob es möglich, eine kontinuierliche Legende Bar auf dem Boden zu ziehen? (also nicht mit der Nummer dazwischen sondern oben). Vielen Dank. – Janvb

+3

Mit dem aktuellen 'ggplot' gibt dies mir die Warnung '' opts '' ist veraltet. Verwenden Sie stattdessen "Thema". (Veraltet; zuletzt in Version 0.9.1 verwendet) '. Das Ersetzen von 'opts' durch' theme' funktioniert. – krlmlr

+0

Ja, ich erwarte, dass sich die internen Abläufe von 'ggplot' ändern –

17

Dies gibt Ihnen nicht genau, was Sie wurden gefragt, aber zumindest die Farben zusammen:

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

Während dies theoretisch die Frage beantworten könnte, [wäre es vorzuziehen] (// meta.stackoverflow.com/q/ 8259), um die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen. –

Verwandte Themen