Website-Icon Björn Walther

Liniendiagramm in R erstellen


Mit einem Liniendiagramm tragt ihr typischerweise ein Merkmal und dessen zeitlichen Verlauf in einer Grafik ab. Dieser Artikel zeigt ein Tutorial, wie ihr ein Liniendiagramm in R mit Bordmitteln (plot-Funktion) am schnellsten erstellt.

Zunächst müssen eure Daten eingelesen sein. Wahlweise könnt ihr sie mit dem attach-Befehl aus dem Data-frame lösen. Ich zeige hier die Variante mit Zugriff auf den Data-frame. Deswegen steht vor den Variablen stets mein Data-frame, der “line” heißt sowie das Dollarzeichen ($) zur Verknüpfung. Ich zeige Schritt für Schritt den Aufbau und fange zunächst mit der Linien an.

Zum Installieren von R bzw. RStudio empfehle ich diesen Artikel. Für augenfreundliches Arbeiten empfehle ich euch diesen Artikel sehr.

 

1 Die Linie einfügen (Optional mit Datenpunkten)

Zuerst fangt ihr dem Befehl plot an. Der grobe Aufbau sieht so aus:


plot(x, y, ...)

 

Im Beispiel zeige ich das Abtragen des Euro-Dollar-Wechselkurses für die Jahre 2000-2017. Genauer gesagt wird der jeweilige Jahresschlusskurs in einem Liniendiagramm abgetragen, um den zeitlichen Verlauf darzustellen. Daher kommt auf die x-Achse die “Zeitvariable”. Ich habe also zwei Variablen: 1) das Jahr (“Jahr”) und 2) den Jahresschlusskurs (“Schluss”). Als x-Variable wähle ich daher “Jahr”. Als y-Variable wähle ich “Schluss”. Da ich es aus meinem Data-frame “line” beziehe, setze ich vor die Variablen entsprechend “line$”.


plot(line$Jahr, line$Schluss)

 

Wie man sehen kann, werden lediglich die Datenpunkte eingetragen, diese aber nicht zu einer Linien verbunden. Hierzu braucht es noch das Argument type=”l”. Das “l” steht hierbei für “line”, also Linie.


plot(line$Jahr, line$Schluss, type="l")

 

Möchte man nun noch zusätzlich die Datenpunkte einblenden lassen, verwendet man type=”b”. Das “b” steht an dieser Stelle für “both” und heißt, dass sowohl Punkte (type=”p”) als auch die Linie (type=”l”) eingefügt werden. Wie ihr oben gesehen habt, ist type=”p” der Standard beim plot-Befehl.


plot(line$Jahr, line$Schluss, type="b")

 

2 Die Achsenbeschriftung anpassen

Wie man sehen kann, hat man in R ein einfaches Liniendiagramm erstellt. Allerdings fällt auf, dass die Beschriftung der Achsen nicht angemessen ist und geändert werden sollte. R trägt in euer Liniendiagramm standardmäßig die Variablennamen ein. Statt line$Jahr und line$Schluss möchte ich “Jahr” und “€/$-Kurs” an den Achsen stehen haben. Das funktioniert mit den Befehlen “xlab” und “ylab“. Man kann einfach schreiben xlab=”Jahr” und ylab=”€/$-Kurs”. Wichtig sind die Anführungszeichen nach dem Gleichheitszeichen. Im Code sieht das dann wie folgt aus:


plot(line$Jahr, line$Schluss, type="b",
xlab="Jahr", ylab="€/$-Kurs")

 

3 Einen Titel vergeben

Jedes Diagramm verdient einen Titel. Zumindest dann, wenn es in einer Präsentation erscheint. Das funktioniert über das Argument “main“. In meinem Falle soll die Abbildung heißen: “Wechselkurs je Jahr”. Der Befehl heißt dann main=”Wechselkurs je Jahr”. Auch hier ist auf die Anführungszeichen zu achten. Das Argument wird mit einem Komma einfach an den bisherigen Code angehängt:


plot(line$Jahr, line$Schluss, type="b",

xlab="Jahr", ylab="€/$-Kurs", main="Wechselkurs je Jahr")

 

4 Datenpunkte formatieren

4.1 Größe der Datenpunkte ändern

Die Größe der Datenpunkte in eurem Punktdiagramm könnt ihr mit dem Argument “cex” ändern. Standardmäßig hat es den Wert 1. mit cex=2 vergrößert ihr die Punkte etwas. Den Wert könnt ihr beliebig steigern, ihr werdet aber schnell merken, dass es nur wenig Sinn macht, eine große Zahl zu wählen. In meinem Falle habe ich den Code mit cex=2 modifiziert.


plot(line$Jahr, line$Schluss, type="b",
xlab="Jahr", ylab="€/$-Kurs", main="Wechselkurs je Jahr",
cex=2)

 

4.2 Aussehen der Datenpunkte ändern

Das standardmäßige Aussehen von Datenpunkten in einem Streudiagramm in R sind leere Kreise. Es gibt bis 25 Vorlagen, die das Aussehen der Datenpunkte im Streudiagramm ändern. Eine Übersicht sehr ihr hier:

Ihr verwendet das pch-Argument, um das Aussehen zu ändern. Wollt ihr beispielsweise den Punkt ausgefüllt haben, verwendet ihr pch=16. Das hängt ihr ebenfalls mit Komma getrennt an euren bisherigen Code der plot-Funktion. Der vollständige Code sieht dann so aus:


plot(line$Jahr, line$Schluss, type="b",
xlab="Jahr", ylab="€/$-Kurs", main="Wechselkurs je Jahr",
cex=2,
pch=16)

 

4.3 Achsenbeschriftung formatieren

Die Größe der Achsenbeschriftung kann ebenfalls angepasst werden. Wenn ihr eure Datenpunkte etwas vergrößert, kann es durchaus sinnvoll sein auch die Achsen bzw. deren Beschriftung etwas zu vergrößern. Mit dem Argument cex.axis werden die Achsenwerte in ihrer Größe verändert. Das Argument cex.lab sorgt für eine andere Größe der Achsenbeschriftung, cex.main für den Titel. In meinem Falle vergrößere ich die Achsenwerte und die Achsenbeschriftung des Streudiagramms etwas mit jeweils 1.5. Der Standardwert ist 1. Ihr könnt auch mit 0.5 eine Verkleinerung erzielen. Der Code sieht wie folgt aus.


plot(line$Jahr, line$Schluss, type="b",
xlab="Jahr", ylab="€/$-Kurs", main="Wechselkurs je Jahr",
cex=2,
pch=16,
cex.axis=1.5, cex.lab=1.5, cex.main=1.5)

 

4.4 x-Achse vollständig beschriften

Wie euch sicher schon aufgefallen ist, werden ab dem Jahr 2000 nur alle 5 Jahre auf der x-Achse Beschriftungen eingefügt. Es sind also nur Punkte auf der x-Achse für 2000, 2005, 2010 und 2015 dargestellt. Hierzu braucht es lediglich den Befehl “axis“. Dieser wird separat ausgeführt und legt eine zusätzliche Ebene über euer bisheriges Diagramm. Da sich das Diagramm prinzipiell in einem Rechteck befindet, könnt ihr theoretisch alle 4 Seiten als Achsen nutzen. Die x-Achse kann demnach auch über dem Diagramm sein. Für unseren Fall wollen wir aber lediglich die x-Achse selbst überarbeiten.

Dazu verwenden wir den Befehl axis(side). Entsprechend der Seite des Rechtecks, das wir beschriften wollen, tragen wir für “side” einfach eine Zahl zwischen 1 und 4 ein. Es wird dabei im Uhrzeigersinn gezählt und auf der unteren Kante angefangen. Die x-Achse ist demnach die 1. Mit dem Argument “at” wählt man aus, an welchen Punkten die x-Achse beschriftet wird. In meinem Falle lege ich eine Sequenz fest (seq=2000,2017, by=1) und setze als Abstandsintervall zwischen den Punkten 1 (“by=1). Im Code sieht das wie folgt aus:


axis(1, at=seq(2000,2017, by=1))

 

Wichtig: Wenn ihr bereits die Achsenbeschriftungen vergrößert habt, fügt ihr diese Argumente auch in den axis-Befehl ein, also z. B.:


axis(1, at=seq(2000,2017, by=1), cex.axis=1.5, cex.lab=1.5, cex.main=1.5)

 

 

4.5 Zusatz: Farbe der Datenpunkte und Achsen ändern

Mit dem Argument “col” könnt ihr euren Datenpunkten zusätzlich einen farbigen Anstrich geben. col.axis ist für die Achsen, col.lab für die Achsenbeschriftung und col.main für den Titel des Streudiagramms. Mit Farbe würde ich allerdings sparsam umgehen. Schwarze oder in Graustufen gehaltene Datenpunkte sind am unverfänglichsten. Dennoch, gibt es die Möglichkeit das Diagramm einzufärben, dazu kann man direkt die Farben in Anführungszeichen (z.B. col=”red”) einfügen. Zu den Farben in R gibt es hier noch mal einen ausführlichen Artikel: Farben in R, der „col“-Befehl.


plot(line$Jahr, line$Schluss, type="b", xlab="Jahr", ylab="€/$-Kurs", main="Wechselkurs je Jahr", cex=2, pch=16, cex.axis=1.5, cex.lab=1.5, cex.main=1.5, col="darkred", col.axis="springgreen1", col.main="powderblue", col.lab="mistyrose")

 

Wichtig: Solltet ihr schon mit dem axis-Befehl gearbeitet haben, ist dieser entsprechend zu erweitern. In meinem Falle füge ich erneut die Achsenfarbe  mit col.axis=”springgreen1″ ein:


axis(1, at=seq(2000,2017,by=1), cex.axis=1.5, cex.lab=1.5, cex.main=1.5, col.axis="springgreen1")

Im Beispiel habe ich es sehr stark übertrieben. Die Punkte mit “darkred” ein dunkelrot, die Achsen ein helles türkis (“springgreen1”), der Titel ein mattes balu (“powderblue” und die Achsenbeschriftung ein helles rosa (“mistyrose”). So eine Darstellung würde ich euch in keinster Weise empfehlen. Sie soll nur veranschaulichen, wie ihr Diagramme in R farblich (über)anpassen könnt.

Weitere mögliche Farben könnt ihr über folgenden Befehl abrufen:

colors()

Er zeigt euch die 657 in R existierenden Farbnamen an, die ihr beliebig miteinander kombinieren könnt.

 

5 Videotutorial zum Erstellen eines Liniendiagramms in R

https://www.youtube.com/watch?v=Tl96viFPq04/
Die mobile Version verlassen