3 Stimmen

Beschneiden von zusätzlichem Leerzeichen in einem Plot, der mit dem ggplot-Paket in R erstellt wurde

Ich möchte den zusätzlichen Leerraum abschneiden, der nach dem Plotten eines Diagramms in ggplot entsteht.

Ich habe den folgenden Code:

 p1 <- ggplot(d2, aes_string(x=names(sameTLM_df)[1],y= "value")) + 
        geom_point(aes(color = variable), size = 1)+ 
        theme_bw()+
        theme(legend.text=element_text(size=18), legend.title=element_text(size=18))+
        theme(axis.text=element_text(size=20)) +
        theme(axis.title=element_text(size=24,face="bold")) +
        scale_color_discrete(name = "Title", labels = c("1","2","3","4","5","6","7","8","9")) + labs(x = "x", y = "y")+ 
        guides(colour = guide_legend(override.aes = list(size=4))) 

das ein Diagramm wie dieses erzeugt:

Hier Bildbeschreibung eingeben

Ich möchte den weißen Hintergrund um das Diagramm herum beschneiden und die Anzahl der Spalten im Legendenbereich auf 2 ändern. Daher verwende ich den folgenden Code:

p2 <- p1 + guides(col = guide_legend(ncol = 2)) + theme(plot.background = element_rect(fill = NULL))

Was zu einem Diagramm wie diesem führt:

Hier Bildbeschreibung eingeben

Der "Leerraum" (ich habe die Hintergrundfarbe gelb gemacht, um den Raum zwischen der Begrenzung und dem Diagramm zu veranschaulichen) wird jedoch nicht entfernt, und während die Anzahl der Spalten auf 2 geändert wird, ändert sich auch die Größe der Legendenliste, was ich nicht brauche. Könnte mir bitte jemand erklären, wie ich die Größe der Legendenliste beibehalten kann, während ich die Spalten auf 2 ändere und den zusätzlichen weißen Raum an den äußeren Grenzen des Diagramms entferne.

Danke

14voto

Amm Punkte 1679

Um die Größe der Legendenliste beizubehalten, während die Anzahl der Legenden-Spalten auf 2 geändert wird, funktioniert der folgende Code. Es ist erforderlich, ncol=2 in den Klammern von override.aes zu haben, damit die Größe der Legende erhalten bleibt.

+ guides(colour = guide_legend(override.aes = list(size=4),ncol=2))

Um den um den Plot herum vorhandenen Leerraum vollständig zu entfernen, der mit ggplot in R erstellt wurde, erledigt dieser Code den Job,

+theme(plot.margin=unit(c(0,0,0,0),"mm"))

Vergewissern Sie sich, dass Sie das Paket library(grid) inkludieren

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X