Als erstes binden wir Marco's Bibliothek lib.r ein, welche nützliche Funktionen enhält und damit die Arbeit mit R vereinfacht.
source("lib.r")
Als nächstes laden wir die Daten, welche im csv-Format gespeichert wurden, in die Variable sheet. Der Variablenname ist frei wählbar.
sheet <- read.csv("data.csv")
Schauen wir mal nach was da drinsteht.
sheet
## Day Cold.1 Cold.2 Cold.3 Warm.1 Warm.2 Warm.3
## 1 1 10 8 12 5 5 5
## 2 2 15 14 14 10 8 7
## 3 3 20 19 17 20 17 22
## 4 4 25 23 23 40 35 41
## 5 5 30 30 31 45 35 40
## 6 6 35 34 39 50 41 40
Die Tabelle enthällt 2 mal 3 Messreihen bei denen die Menge von Zellen unter den Bedingungen Warm/Kalt gemessen wurden. Damit R besser mit den Daten arbeiten kann, müssen wir sie ins Long-Format konvertieren. Wir speichern das Ergebnis in der Variable data welche wir später beim Erstellen der Diagramme verwenden.
data <- toLongFormat(sheet)
data
## Day condition serie value
## 1 1 Cold 1 10
## 2 2 Cold 1 15
## 3 3 Cold 1 20
## 4 4 Cold 1 25
## 5 5 Cold 1 30
## 6 6 Cold 1 35
## 7 1 Cold 2 8
## 8 2 Cold 2 14
## 9 3 Cold 2 19
## 10 4 Cold 2 23
## 11 5 Cold 2 30
## 12 6 Cold 2 34
## 13 1 Cold 3 12
## 14 2 Cold 3 14
## 15 3 Cold 3 17
## 16 4 Cold 3 23
## 17 5 Cold 3 31
## 18 6 Cold 3 39
## 19 1 Warm 1 5
## 20 2 Warm 1 10
## 21 3 Warm 1 20
## 22 4 Warm 1 40
## 23 5 Warm 1 45
## 24 6 Warm 1 50
## 25 1 Warm 2 5
## 26 2 Warm 2 8
## 27 3 Warm 2 17
## 28 4 Warm 2 35
## 29 5 Warm 2 35
## 30 6 Warm 2 41
## 31 1 Warm 3 5
## 32 2 Warm 3 7
## 33 3 Warm 3 22
## 34 4 Warm 3 41
## 35 5 Warm 3 40
## 36 6 Warm 3 40
Nun können wir die Durchschnittswerte der Meßreihen als Liniendiagramm mit Fehlerbalken (Standardfehler) plotten.
plotLinesWithErrorBars(data, condition.label="Temperatur") +
ylab("Anzahl der Zellen") +
xlab("Tage") +
ggtitle("Zellwachstum")
Das Plotten eines Balkendiagrams ist genauso einfach.
plotBarsWithErrorBars(data, condition.label="Temperatur") +
ylab("Anzahl der Zellen") +
xlab("Tage") +
ggtitle("Zellwachstum")
Der aktuelle Plot kann in verschiedenen Formaten gespeichert werden.
ggsave("plot.pdf")
ggsave("plot.tiff", dpi = 100)
ggsave("plot.png")
ggsave("plot.eps")
grid.arrange(
plotLinesWithErrorBars(data, condition.label="Temperatur") +
ylab("Anzahl der Zellen") +
xlab("Tage") +
ggtitle("Zellwachstum"),
plotBarsWithErrorBars(data, condition.label="Temperatur") +
ylab("Anzahl der Zellen") +
xlab("Tage") +
ggtitle("Zellwachstum"),
ncol=2
)
Im folgenden Beispiel verändern wir die Farben welche die Bedingungen Kalt/Warm repräsentieren. Außderdem wird die Temperaturlegende oberhalb des Diagramms angezeigt.
plotBarsWithErrorBars(data) +
ylab("Anzahl der Zellen") +
xlab("Tage") +
ggtitle("Zellwachstum") +
scale_fill_manual(name="Temperatur", values = c('blue','red')) +
legendOutside('top')
Wenn man die Legende innerhalb des Diagramms anzeigt, wird es oft nötig sein, sie in die richtige Ecke zu schieben. Dafür können die Werte 'top.left', 'top.right', 'bottom.left' und 'bottom-right' verwendet werden.
plotLinesWithErrorBars(data, condition.label="Temperatur") +
ylab("Anzahl der Zellen") +
xlab("Tage") +
ggtitle("Zellwachstum") +
legendInside('top.left')
Man kann die Legende auch irgendwo mitten ins Diagram schieben und lustig bunt machen, wenn man das will. Auf http://docs.ggplot2.org/current/theme.html kann man sich weitere Inspirationen holen.
plotLinesWithErrorBars(data, condition.label="Temperatur") +
ylab("Anzahl der Zellen") +
xlab("Tage") +
ggtitle("Zellwachstum") +
theme(legend.position=c(0.4,0.4),
legend.title = element_text(size = rel(2), colour = "blue"),
legend.background =
element_rect(fill='yellow1',
linetype='dotted',
size=2,
color="red"))