Wenn Sie im Datensatz aussagekräftige Variablen- und Stufenbezeichnungen verwenden, muss an den ggplots häufig nicht mehr viel geändert werden. Falls Sie einen Plot für eine Publikation erstellen wollen, können Sie zuerst ein Fenster in der gewünschten Grösse des Plots definieren. Das hat den Vorteil, dass sie später nicht unliebsame Überraschungen mit unleserlichen Schriften beim Verkleinern erleben. Anschliessend generieren Sie den Plot. Falls nötig, können Sie Titel, Achsenbezeichnungen, Legende und Skalenbereiche mit Hilfe untenstehender Formatierungswerkzeuge ändern.
Wenn man die Grösse des Plots vorgeben will, ist dies vor dem Funktionsaufruf für den Plot zu erledigen. quartz(width=12/2.54, height=10/2.54) # Beispiel für 12 cm breit und 10 cm hoch
Für PC ist quartz()
durch windows()
zu ersetzen.
Selbstverständlich könen Sie die Grösse des Grafikfensters auch direkt mit der Maus anpassen. Strichdicken, Schrift- und Punktgrössen ändern dabei nicht.
Die mit meinen Funktionen erstellten ggplots enthalten keine Titel, da diese beim Einreichen eines Manuskriptes separat mitgeliefert werden.
Titel einfügen: last_plot() + ggtitle("Titel einfügen")
Bezeichnung der x-Axhse ändern: last_plot() + xlab("Bezeichnung der X-Achse")
Bezeichnung der y-Axhse ändern: last_plot() + ylab("Bezeichnung der Y-Achse")
Der Befehl hängt davon ab, ob es sich um ein Balken- oder Liniendiagramm handelt und ob der Plot schwarzweiss oder farbig ist. Wenn Sie die Stufenbezeichnungen nicht ändern wollen, lassen Sie breaks und labels weg. Wenn Sie bei der Schwarzweissvariante des Balkendiagramms den Bereich der Grauabstufung definert haben (start = 0, end = .9), fügen Sie dies auch im update ein.
Balkendiagramm
Swarzweiss: last_plot() + scale_fill_grey(name="Titel", breaks=c("alte Labels", ...), labels= c("neue Labels", ..))
Farbig: last_plot() + scale_fill_discrete(name="Titel", breaks=c("alte Labels", ...), labels= c("neue Labels", ..))
Liniendiagramm
Swarzweiss: last_plot() + scale_linetype_grey(name="Titel", breaks=c("alte Labels", ...), labels= c("neue Labels", ..))
Farbig: last_plot() + scale_colour_discrete(name="Titel", breaks=c("alte Labels", ...), labels= c("neue Labels", ..))
Legende über dem Plot: last_plot() + theme(legend.position = "top", legend.direction="horizontal")
Legende unter dem Plot: last_plot() + theme(legend.position = "bottom", legend.direction="horizontal")
Legende innerhalb des Plots (Achsenbereiche 0-1, d.h. Ecke links unten (0,0), Ecke rechts oben (1, 1)): last_plot() + theme(legend.position = c(0.9, 0.9), legend.direction="vertical") # Nach zwei Versuchen hat mann's.
Legende weglassen: last_plot() + theme(legend.position = "none")
Die von untenstehenden Funktionen übernommenen Variablen- und Stufenbezeichnungen können durch Strings mit Leerschlägen und/oder mathematische Ausdrücke ersetzt werden (Mathe-Syntax vgl. ?plotmath
). Kombination von Text und mathematischen Ausdrücken ohne Einsetzen von Werten in Variablen: last_plot() + ggtitle(expression(paste("Konfidenzintervall von ", bar(X)[1]- bar(X)[2], " (", alpha==.05, ")")))
Kombination von Text und mathematischen Ausdrücken mit Einsetzen von Werten in Variablen: p <- 0.7; n <- 20
last_plot() + ggtitle(substitute(paste("Binomialverteilung für: ", pi==p, " und ", N==n), list(p=p, n=n)))
Die Skalenbereiche können im Nachhinein geändert werden. Dies kann für Linienplots hifreich sein, deren Ordinate in der Defaultvariante manchmal nicht bei 0 beginnt.
Skalenbereich der x-Axhse ändern: last_plot() + xlim(0, 60) # Skalenbereich von 0 bis 60
Skalenbereich der y-Axhse ändern: last_plot() + ylim(0, 60)
Die in eingesetzten Zahlen sind nur als Beispiel und nicht als Normwerte zu verstehen.
Haupttitel: last_plot() + theme(plot.title=element_text(size = 14, face="bold"))
Titel der x-Achse: last_plot() + theme(axis.title.x = element_text(size =12))
Titel der y-Achse: last_plot() + theme(axis.title.y = element_text(size = 12, angle = 90))
Beschriftung der x-Achse: last_plot() + theme(axis.text.x = element_text(size = 10))
Beschriftung x-Achse vertikal: last_plot() + theme(axis.text.x = element_text(size = 10, angle=90, hjust=1))
Beschriftung der y-Achse: last_plot() + theme(axis.text.y = element_text(size = 10))
Titel der Legende: last_plot() + theme(legend.title = element_text(size = 12, face="bold"))
Labels der Legende: last_plot() + theme(legend.text = element_text(size = 12))
Striptext (vgl. Histogramme für zweifaktorielle Designs): last_plot() + theme(strip.text.x=element_text(size = 10), strip.text.y=element_text(size = 10, angle = -90))
Wenn Sie den Plot auf die gewünschte Grösse bringen, kann es sein, dass die Abstände zwischen den Skalenbeschriftungen für die gewünschte Schriftgrösse zu eng werden und vergrössert werden müssen.
Skalierung der x-Achse ändern: last_plot() + scale_x_continuous(breaks=c(0, 20, 40, 60))
Skalierung der y-Achse ändern: last_plot() + scale_y_continuous(breaks=c(0, .02, .04, .06))
x-Achse: last_plot() + theme(axis.title.x=element_blank(), axis.text.x=element_blank(), axis.ticks.x=element_blank())
y-Achse: last_plot() + theme(axis.title.y=element_blank(), axis.text.y=element_blank(), axis.ticks.y=element_blank())
Die Punkteformen werden beispielsweise anhand eines Faktors mit zwei Stufen unterschieden, vgl. Interaktionsplot (Schwarzweissversion 2), Streudiagramm mit Gruppenvariablen last_plot() + scale_shape_manual(values=c(15, 18))
Zuordnung der Nummern zu den Punkteformen: x <- 0:24; y <- rep(0, 25); Dat <- data.frame(x,y)
quartz(width=10, height=2)
ggplot(data=Dat, aes(x=x, y=y)) + geom_point(shape=x, size=8) + theme_bw() + scale_x_continuous(breaks=c(0:24)) +
theme(axis.title.y=element_blank(), axis.text.y=element_blank(), axis.ticks.y=element_blank()) + xlab("Symbolnummer")
Es ist zu beachten, dass die von ggplot automatisch gewählten Farben auf den ersten Blick zwar nicht sehr knallig daherkommen, sich aber trotzdem sehr gut für Powerpointpräsentationen eignen.
Es gibt ganz verschiedene Varianten, auf Farbtöne zuzugreifen.
• Die einfachste aber auch rudimentärste ist eine Zuordnung von acht Farben zu den Zahlen 1 bis 8, vgl. x <- 1:8; y <- rep(0, 8); Dat <- data.frame(x,y); quartz(width=6, height=2)
ggplot(data=Dat, aes(x=x, y=y)) + geom_point(shape=15, size=15, colour=x) + theme_bw() +
scale_x_continuous(breaks=c(1:8)) + theme(axis.title.y=element_blank(),
axis.text.y=element_blank(), axis.ticks.y=element_blank()) + xlab("Farbnummer")
• Sie können Farbnamen verwednen, z.B. c("red", "blue")
, siehe: http://sape.inf.usi.ch/quick-reference/ggplot2/colour
• Sie können gezielt auf Farben des RGB oder HSV resp. HSB Farbraumes zugreifen, siehe obige Homepage.
• Es gibt eine Farbpalette, die sich speziell für Farbenblinde eignet, siehe http://www.cookbook-r.com/Graphs/Colors_(ggplot2)/
Ändern der Linienfarben
Die Linienfarben werden beispielsweise anhand eines Faktors mit zwei Stufen unterschieden, vgl. Interaktionsplot (Schwarzweissversion 2), Streudiagramm mit Gruppenvariable last_plot() + scale_colour_manual(values=c(2, 3))
Ändern der Füllfarben von Balken
Die Punkteformen werden beispielsweise anhand eines Faktors mit zwei Stufen unterschieden, vgl. Balkendiagramm von Häufigkeiten und Balkendiagramm von Mittelwerten last_plot() + scale_fill_manual(values=c(2, 3))