Jakob Richter

ggplot2: Tipps für Grafiken in schwarz weiß

Das ggplot2 hübschere und buntere Grafiken als unter R standard erzeugt sollte mittlerweile jeder wissen. Doch es geht mit ein paar Tricks auch in Graustufen und druckerfreundlich.
Am schnellsten geht es in dem wir unserem ggplot-Objekt einfach ein theme_bw() hinzufügen (g < - g + theme_bw()). Unter umständen ist man mit dem Ergebnis sogar schon zufrieden. Wer das Theme nicht so schön findet, dem sei diese informative Seite ans Herz gelegt.
Wichtig ist, dass bei umfangreicheren ggplot2-Objekten das Farbschema schon am Anfang hinzugefügt wird, da ansonsten Einstellungen die in +opts() vorgenommen wurden überschrieben werden können.

Ein Beispiel

Nehmen wir die recht umfangreiche schon erstellte Grafik aus dem letzten ggplot2-Beitrag.

Machen wir von Anfang an klar, welches Theme wir nutzen wollen:

1
g <- ggplot(mdat,aes(y=value,x=Jahr)) + theme_bw()

Hier verwenden wir nun anstatt color für die Färbung der Punkte einfach shape. Dies entspricht genau dem pch wie man es aus R kennt.
Read the rest of this entry »

Ersetzen in regelmäßigen Abständen, bzw. nach einem Schema

Vielleicht hat dieses Codebeispiel keine große Praxisrelevanz, aber dennoch stolpert man vielleicht mal über die Aufgabe. Hier also ein fiktives Beispiel:
Es liegt eine sehr einfache Reihe an Messdaten vor, von denen wir wissen, dass sie nur Werktags erhoben wurden. In Wochentagen sähe es also so aus:

MO DI MI DO FR MO DI MI DO FR MO DI..

Nach 5 Messungen ist also eine Lücke von 2 Tagen, die leider nicht im Datensatz selbst ist, die wir aber irgendwie füllen wollen – vielleicht mit Daten aus den Wochenendsmessungen.
Ein Ersetz-Schema sieht also wie folgt aus, wobei T angibt, dass wir die Daten aus dem Datensatz nehmen wollen, ein F gibt an, dass der alternative Datensatz zu nutzen ist.

T T T T T F F T T T T T F F T T

Am einfachsten nachzuvollziehen geht es in einer While-Schleife. Hier bereits in einer sehr allgemein nutzbaren Funktion. Es gibt einen Vektor mit den Ursprungsdaten und einen mit den Lückenfüllern und natürlich das Schema, wonach der neue Vektor entstehen soll.

Read the rest of this entry »

Tipp: nicht-destruktives Arbeiten mit par()

Ein kleiner Tipp, wenn man mal doch mit der in R eingebauten Grafikumgebung arbeiten will und nicht mit ggplot.
Hat man mal ein längeres R-Skript und erzeugt darin verschiedene Grafiken, kommt es häufig vor, dass man für einige bestimmte Einstellungen in par() ändern möchte. Insbesondere vermutlich mfrow=c(2,3) um mehrere Plots neben und untereinander in einer Grafik zusammenzufügen. Wenn dann die nächsten Grafiken wieder einzeln geplotted werden sollen, muss man wieder mühselig die Parameter von par() zurück setzen.
Am elegantesten geht es wohl so:

1
2
3
4
5
6
7
8
9
# ...
# irgendwelcher Code
op <- par(mfrow=c(1,2)) #Einstellen der Grafikparameter
  #2 Plots nebeneinander
  plot(runif(100),runif(100))
  plot(runif(100),runif(100))
par(op) #Alles auf den Zustand davor zurücksetzen
plot(runif(100),runif(100)) #1 Plot alleine
#...