Website-Icon Björn Walther

Liniendiagramm in R mit ggplot erstellen

Ein Liniendiagramm mit ggplot sieht deutlich schicker aus, als mit Bordmitteln. Der Verwendungszweck bleibt aber logischerweise identisch: ein Merkmal und dessen zeitlichen Verlauf werden in einer Grafik abgebildet, z.B. Temperaturen, Wechselkurse usw.

Vorbemerkungen

Zunächst werden Daten eingelesen. In der Regel reicht für die Zeitvariable das numeric-Format, wenn es lediglich Jahreszahlen sind. Monate im Character-Format funktionieren ebenfalls. Solltet ihr allerdings Datum und/oder Uhrzeit haben, empfiehlt sich eine Umwandlung in und Verwendung des POSIXct-Formats.

Für ein Liniendiagramm mit mehreren Linien empfehle ich diesen Artikel (erscheint bis 28.07.2022), da der Datensatz im sog. long-Format vorliegen muss.

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

 

Diagramm erstellen

Variablen zuweisen

Im Beispiel zeige ich, das Abtragen der historischen Euro-Dollar-Wechselkurse (jeweils Schlusskurs für die Jahre 2000-2017). Daher kommt auf die x-Achse die “Zeitvariable”. Ich habe also zwei Variablen: 1) das Jahr (“Jahr”) und 2) den Jahresschlusskurs (“Schluss”).
Zuerst fangt ihr dem Befehl ggplot an. Der grobe Aufbau sieht so aus:


ggplot(data=line, aes(x=Jahr, y=Schluss))

 

Linie einfügen

Im Anschluss an ggplot() wird ein + gesetzt und der übersicht wegen in der neuen Zeile weitergearbeitet. Der entscheidende Befehl ist hierbei “geom_line()“.

  • linetype” ändert die Linienart (siehe unten),
  • color” ermöglicht das Einfärben (siehe Farben) und
  • size” die Dicke.
  • 
    ggplot(data=line, aes(x=Jahr, y=Schluss))+
      geom_line(linetype=1, color="steelblue", size=2)
    

    Linientypen

     


     

     

    Datenpunkte hinzufügen

    Zur besseren Lesbarkeit können noch Datenpunkte hinzugefügt werden. “geom_point()” ermöglicht dies. Analog kann mit size und color gearbeitet werden. Zusätzlich können die Datenpunkte noch eine andere Form mit “shape” erhalten.
    Ich habe hellblaue um 45° gedrehte Vierecke als Datenpunkte festgelegt:

    
    ggplot(data=line, aes(x=Jahr, y=Schluss)) +
      geom_line(linetype=1, color="steelblue", size=2) +
      geom_point(size=5, color="steelblue", shape=23, fill="lightblue")
    

    Datenpunkttypen

     


     


     

    Diagramm formatieren

    Titel vergeben und Achsen beschriften

    In ggplot werden der Titel und die Achsen mit dem Befehl “labs()” vergeben. Der Titel (kann meist weggelasen werden, da eine Abbildungsbeschriftung im Dokument existiert) wird über das Argument “title” festglegt. Mit “x=” und “y=” werden die Achsen beschriftet.

    
    ggplot(data=line, aes(x=Jahr, y=Schluss)) +
      geom_line(linetype=1, color="steelblue", size=2) +
      geom_point(size=5, color="steelblue", shape=23, fill="lightblue") +
      labs(x="Jahr", y="Wechselkurs Euro/Dollar", 
      title="Wechselkurs Euro/Dollar im Zeitraum 2000-2017")
    


     

    Achse begrenzen

    Mit “scale_x_continuous()” bzw. “scale_y_continuous()” kann sowohl ein Achsenausschnitt definiert werden (z.B. nur die Jahre 2005-2010) als auch festgelegt werden, in welchen Abständen die Beschriftung auf der Achse eingeblendet (z.B. jährlich, alle 2 Jahre usw.) wird. Ich zeige das hier exemplarisch für die x-Achse die Jahre 2005-2010 in 1er Schritten und auf der y-Achse den Wechselkurs bei 1; 1,15; 1,3; 1,45 und 1,5.

    
    ggplot(data=line, aes(x=Jahr, y=Schluss)) +
      geom_line(linetype=1, color="steelblue", size=2) +
      geom_point(size=5, color="steelblue", shape=23, fill="lightblue") +
      labs(x="Jahr", y="Wechselkurs Euro/Dollar", title="Wechselkurs Euro/Dollar im Zeitraum 2000-2017") +
      scale_x_continuous(limits=c(2005,2010), breaks = seq(2000,2017, by=1))+
      scale_y_continuous(breaks=c(1, 1.15, 1.3, 1.45, 1.5))
    

    scale_x_continous funktioniert nur für numerisch skalierte Variablen. scale_x_date, scale_x_time existieren auch und können verwendet werden, wenn die Zeitvariable ein Datums- oder Zeitformat hat. Gleiches gilt für scale_y_continous.

     


     

    Es gibt noch viele weitere Anpassungsmöglichkeiten. Diese hier alle auszuführen, würde den Rahmen eines Übersichtsartikels sprengen.

     

    Videotutorial

    https://www.youtube.com/watch?v=ERBmyeD-siI/
     

    Die mobile Version verlassen