Website-Icon Björn Walther

Geraden in R in ggplot zeichnen


Je nach Diagramm und Anwendungsfall kann notwendig sein, in ein mit ggplot erstelltes Diagramm Geraden/Linien einzuzeichnen. Dieser Beitrag zeigt, wie horizontale und vertikale Geraden eingezeichnet werden, eine Gerade mit Achsenabschnitt und Steigung sowie eine Regressionsgerade eingezeichnet werden können. Letzteres ist nur sinnvoll im Kontext von Streudiagrammen.

1 Beispieldaten erstellen und Diagramm zeichnen

Wer Beispieldaten zur Orientierung braucht, kann diese übernehmen und ausführen. Das Diagramm wird im Objekt p gespeichert, damit ein übersichtlicheres Arbeiten möglich ist.


# Datenpunkte generieren 
x = c(0,1,2,3,4,4,5,6)
y = c(0,2,3,1,6,8,10,9)
 
# Data Frame erstellen
d 

Das Ausgangsdiagramm sieht wie folgt aus:

 

2 Horizontale Gerade in ggplot einzeichnen

Eine Horizontale wird mit der Funktion geom_hline() eingezeichnet. Zusätzlich muss das Argument yintercept angegeben werden, um zu definieren, auf welcher Höhe der y-Achse die Linie verläuft.Ich zeichne eine Linie mit y=4 ein, die parallel zur x-Achse verläuft.


p + geom_hline(yintercept = 4)

 

Die Linie kann man auch gestrichelt darstellen. Dazu nutzt man das Argument linetype:
Linientypen:

Dazu zeichne ich diesmal bei y=7 eine parallele Gerade zur x-Achse ein und stelle sie gestrichelt dar.


p + geom_hline(yintercept = 7, linetype="dashed")

 

3 Vertikale Gerade einzeichnen

Eine Vertikale wird mit der Funktion geom_vline(), allerdings mit dem Argument "xintercept" eingezogen. Hier ziehe ich eine Gerade ein, die bei x=3 parallel zur y-Achse verläuft.


p + geom_vline(xintercept = 3)

 

4 Gerade mit Achsenabschnitt und Steigung einzeichnen

Eine Gerade mit Achsenabschnitt und Steigung kann in ggplot mit der Funktion geom_abline() eingefügt werden. Wir benötigen hierfür nun aber zwei Argumente. Zum einen den Achsenabschnitt mit dem Argument intercept und zum anderen die Steigung mit dem Argument slope.
Ich zeichne eine Gerade bei y=1,2 mit der Steigung von 1,5. Zusätzlich mache ich sie etwas dicker (size=2), färbe sie exemplarisch orange ein und stelle sie gepunkted ("dotted") dar. Weitere Farben gibt es hier in der Übersicht.


p + geom_abline(intercept = 1.2, slope = 1.5, size=2, 
                colour="orange", linetype="dotted")

 

5 Regressionsgerade einzeichnen

Dies funktioniert wie bereits erwähnt nur für Streudiagramme. Hierfür benötigt man lediglich die Funktion geom_smooth().


p + geom_smooth(method = "lm", formula = y~x, 
                se = FALSE, colour = "red", linetype = "dashed")

 

6 Kombination mehrerer Geraden

Abschließend noch ein kurzer Überblick, wie man zwei oder mehr Gerade einzeichnet, beispielsweise, um einen Schnittpunkt zu erzeugen:


p + geom_hline(yintercept = 3, linetype="dashed") +
    geom_vline(xintercept = 2, linetype="dashed") +
    geom_smooth(method = "lm", formula = y~x, 
                se = FALSE, colour = "red", linetype = "dashed")

 

7 Videotutorial

https://www.youtube.com/watch?v=mWb-lY1zpu8 /

 

Die mobile Version verlassen