Mit ggfortify lassen sich viele R-Datentypen plotten

Eine Art Quasi-Standard für das Plotten mit R ist ggplot2. Es benötigt aber als Datenquelle einen Data Frame. Manchmal liegen die Daten aber in einem anderen Format vor, etwa Time Series oder xts. Hier hilft ggfortify, das eine ganze Latte Formate plotten kann. Es basiert auf ggplot2, so dass sich der Plot mit ggplot2-Syntax modifizieren lässt.

Nachfolgend ein kleines Beispiel-Skript. Es holt sich von der Yahoo-Seite die Börsenkurse von VW, BMW und Daimler und stellt den Verlauf der vergangenen fünf Jahre grafisch dar.

library(ggfortify)
library(xts)

vw_url <- "http://chart.finance.yahoo.com/table.csv?s=VOW.DE&a=8&b=14&c=2011&d=8&e=14&f=2016&g=d&ignore=.csv"
bmw_url <- "http://chart.finance.yahoo.com/table.csv?s=BMW.DE&a=8&b=14&c=2011&d=8&e=14&f=2016&g=d&ignore=.csv"
daimler_url <- "http://chart.finance.yahoo.com/table.csv?s=DAI.DE&a=8&b=14&c=2011&d=8&e=14&f=2016&g=d&ignore=.csv"
yahoo.read <- function(url){
  dat <- read.table(url,header=TRUE,sep=",")
  df <- dat[,c(1,7)]
  df$Date <- as.Date(as.character(df$Date))
  return(df)}
vw  <- yahoo.read(vw_url)
colnames(vw)[2] <- "vw"
bmw  <- yahoo.read(bmw_url)
daimler  <- yahoo.read(daimler_url)
vw$bmw <- bmw[,2]
vw$daimler <- daimler[,2]
vw <- xts(vw[,-1], order.by=vw[,1])

autoplot(vw, facets = FALSE) +
  ggtitle("Closing Stock Prices") + xlab("Jahr") + ylab("Kurs (EUR)")+
  labs(color="Legende") +
  scale_colour_manual(breaks = c("bmw", "daimler", "vw"), values = c("red", "blue", "purple"))

Börsenkurse von VW, BMW und Daimler 2011 bis 2016
Der Knick nach dem Abgasskandal ist deutlich zu erkennen.
Das Skript: Zunächst werden ggfortify und xts eingebunden. Dann werden die drei Datensätze von der Yahoo-Seite eingelesen. Willst du andere Börsenkurse anzeigen lassen, dann suche auf der Yahoo-Seite nach dem entsprechenden Kürzel und setze es an der Stelle von VOW.DE ein. Analog lässt sich auch der Zeitrahmen anpassen.
Die Funktion yahoo.read wandelt das Ganze in Data Frames um und selektiert die passenden Spalten. Die Daten werden in die Variablen vw, bmw und daimler eingelesen und alles im Data Frame vw zusammengefasst und anschließend in eine Zeitreihe von Typ xts konvertiert.
Nun kommt der Auftritt von ggfortify. Um den Plot zu erzeugen genügt die dürre Codezeile
autoplot(vw, facets = FALSE)
Die übrigen Zeilen sind Kosmetik in ggplot2-Syntax.
ggtitle("Closing Stock Prices") + xlab("Jahr") + ylab("Kurs (EUR)")
fügt einen Titel hinzu und beschriftet die Achsen. Anschließend werden noch die Legende und die Farben festgelegt.

labs(color="Legende") +
  scale_colour_manual(breaks = c("bmw", "daimler", "vw"), values = c("red", "blue", "purple"))

Teile diesen Beitrag!