2015-05-06 12 views
5

Ich habe ein Diagramm in R, die eine sehr große Anzahl von Beispielgruppen hat, und daher ist die Legende größer als die Seitengröße und wird abgeschnitten. Ich verstehe, dass dies keine Publikationsqualität ist, aber ich muss die Farben kennen, um die Legende in Illustrator erstellen zu können.ggplot Legendenliste ist größer als Seite

Gibt es eine Möglichkeit, die Seitengröße viel größer zu machen oder das Legendenformat irgendwie zu ändern, damit ich alle Schlüssel einschließen kann? Der Grund dafür ist, dass ich die PDF-Datei in Illustrator öffnen und die Farben für jedes Beispiel abrufen kann, um eine neue Legende für die Veröffentlichung zu erstellen. Ich dachte, dass es vielleicht eine Schnittmaske gibt und dass die eigentliche Legende erhalten bleibt, aber als ich in Illustrator geöffnet habe, wurde die Legende tatsächlich an den Seitenenden geschnitten1.

Here is one exmple where the legend goes beyond the graph and the page size and is therefore cut off.

Wie in den Kommentaren unten vorgeschlagen ich nrow einen Versuch gab, die die Legenden oben brechen half aber jetzt ist die gesamte Seite ist nur Legenden.

ggplot(purine.n, aes(x=variable, y=value, colour=metabolite_gene, shape=variable)) 
+geom_abline(slope=0) 
+geom_point(size=4, position=position_dodge(width=0.08)) 
+scale_y_continuous(limit=c(-3.5,5.5), breaks=c(-3,-2,-1,0,1,2,3,4,5)) 
+scale_shape_manual(values=c(16,17,17), guide=F) 
+theme_bw() 
+theme(legend.key=element_blank(), legend.key.size=unit(1,"point")) 
+guides(colour=guide_legend(nrow=16)) 
+1

Ist die [ 'nrow oder ncol'] mit (http://docs.ggplot2.org/0.9.3.1/guide_legend.html) Argument Hilfe? (imo (fwiw) mit diesen vielen Faktoren/Farben wird keine sehr informative Handlung/Legende erzeugen) – user20650

+0

Müssen Sie für jede Kategorie eine andere Farbe haben? Wenn die Kategorien nicht ordinal sind, kann es für jemanden sehr schwer sein, effektiv zu lesen. Vielleicht möchten Sie eine andere Art der Differenzierung von Kategorien herausfinden. –

+0

Danke, das führte dazu http://stackoverflow.com/questions/25621920/guide-legend-and-ggplot2-format-nrow aber leider hat es das Problem nicht gelöst. Ich denke, was Sie darauf hingewiesen haben, ist der richtige Weg tho! Ich habe die Frage aktualisiert, um Ihre Vorschläge zu berücksichtigen. – pandoraEudora

Antwort

7

Wie in den Kommentaren vorgeschlagen wurde, war nrow die Antwort auf mein Problem. Ich musste den Wert anpassen, um die richtige Anzahl von Zeilen für meine Legende zu erhalten. Unten ist der fertige Code, der funktioniert hat. Es gibt noch mehr Optimierungen, die ich vornehmen muss, wie zum Beispiel die Seitengröße ändern, damit die Dinge besser aussehen, aber das ist außerhalb des Rahmens dieser Frage.

ggplot(data.n, aes(x=variable, y=value, colour=metabolite_gene, shape=variable)) 
+geom_abline(slope=0)+geom_point(size=4, position=position_dodge(width=0.08)) 
+scale_y_continuous(limit=c(-3.5,5.5), breaks=c(-3,-2,-1,0,1,2,3,4,5)) 
+scale_shape_manual(values=c(16,17,17), guide=F) 
+theme_bw() 
+theme(legend.key=element_blank(), legend.key.size=unit(1,"point")) 
+guides(colour=guide_legend(nrow=30)) 

fixed legend with nrow