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"))
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
Die übrigen Zeilen sind Kosmetik in ggplot2-Syntax.
autoplot(vw, facets = FALSE)
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"))
Schreibe einen Kommentar