2012-06-22 5 views
8

Ich zeichne 15 Zeilen mit ggplot (Paketname: ggplot2), die jeweils eine separate Entität darstellen und eine Legende für dieselbe erstellen möchten. Ich bin jedoch nicht in der Lage, die Legendeneinträge in mehr als eine Spalte zu unterteilen. Kann jemand bitte vorschlagen, wie man dasselbe in der ggplot Umwelt tut.Erstellen von Spalten in einer Legendenliste während der Verwendung von ggplot in R-Code

Derzeit verwende ich den folgenden Befehl Legende zu schaffen:

opts(title=plotName,legend.position='bottom') 

jedoch ergibt dies eine eine Spalte Legende. Infolgedessen wird eine große Fläche in der Karte von der Legende selbst genommen. Die Aufteilung in 2 oder 3 Spalten würde der Ursache wirklich helfen, während die Legende unten im Diagramm beibehalten wird. Ich habe auch versucht legend.direction, aber dieser Befehl zeigt Legende in einer Zeile, die nicht wünschenswert ist, es sei denn, ich kann es über 2-3 Zeilen verbreiten.

opts(title=plotName,legend.position='bottom',legend.direction="horizontal") 

Vielen Dank im Voraus, Munish

Antwort

8

Sie guide_legend() verwenden können, um das Layout und das Aussehen von ggplot Legenden zu steuern. Insbesondere braucht es die Argumente nrow und ncol, die Sie suchen.

Hier ist ein Beispiel aus Abschnitt 2 des sehr hilfreichen Dokuments Changes and additions to ggplot2-0.9.0.pdf.

library(ggplot2) 

q <- ggplot(diamonds, aes(x = table, fill = clarity)) + 
    geom_histogram() + 
    scale_y_continuous() 

q + guides(fill = guide_legend(nrow = 4, title.hjust = 0.4, 
     title.theme = theme_text(size = 12, face = "bold"))) + 
xlim(45, 75) 
11

die neuen Themen Umgebung von ggplot Verwendung erfordert nur eine einfaches: + guides(col=guide_legend(ncol=2)) Ihre Legende in zwei Spalten zu formatieren.

Verwandte Themen