Noras R Template - Kurzanleitung

Marco's Bibliothek einbinden

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")

Daten laden

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

Daten ins Long-Format konvertieren

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

Plotten von Diagrammen

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")

plot of chunk unnamed-chunk-5

Das Plotten eines Balkendiagrams ist genauso einfach.

plotBarsWithErrorBars(data, condition.label="Temperatur") +
  ylab("Anzahl der Zellen") +
  xlab("Tage") +
  ggtitle("Zellwachstum")

plot of chunk unnamed-chunk-6

Speichern von Diagrammen

Der aktuelle Plot kann in verschiedenen Formaten gespeichert werden.

ggsave("plot.pdf")
ggsave("plot.tiff", dpi = 100)
ggsave("plot.png")
ggsave("plot.eps")

Plotten mehrerer Diagramme in ein Bild

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
  )

plot of chunk unnamed-chunk-8

Das Aussehen der Diagramme anpassen

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')

plot of chunk unnamed-chunk-9

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')

plot of chunk unnamed-chunk-10

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"))

plot of chunk unnamed-chunk-11