Mit highcharter und Quandl interaktives Kreisdiagramm erstellen
Das R-Package highcharter
ist ein Wrapper der Javascript-Library Highcharts. Damit lassen sich relativ einfach Grafiken und Diagramme erzeugen, die in Form von Tooltips unter dem Mauszeiger den jeweiligen Wert anzeigen.
Als Beispiel sollen die Tagesschwankungen des Kurses der digitalen Kryptowährung Bitcoin in einem Kreis- oder Polardiagramm dargestellt werden. Unter dem Mauszeiger blenden sich dann das Datum, der Eröffnungs- und Schlusskurs sowie die Differenz ein. Die Daten werden mit dem R-Package Quandl eingelesen, das eine API zu www.quandl.com darstellt, einer Website mit Finanz- und Wirtschaftsdaten. Highcharts bzw. highcharter ist schließlich für die Grafik zuständig.
library(highcharter) library(Quandl) library(dplyr) library(lubridate) df=Quandl("BCHARTS/BTCDEEUR") df %>% arrange(Date) %>% mutate(tmstmp = datetime_to_timestamp(Date)) -> df last_date=max(df$Date) if (day(last_date+1)==1) date_to=last_date else date_to=ymd(paste(year(last_date), month(last_date),1, sep="-"))-1 date_from=ymd(paste(year(date_to)-1, month(date_to)+1,1, sep="-")) df %>% filter(Date>=date_from, Date<=date_to) -> df bitliste <- df %>% mutate(Variation = round(Close - Open, digits = 1), color = ifelse(Variation>=0, "green", "red"), y = Variation) %>% select(x = tmstmp, y, variation = Variation, name = Date, color, open = Open, close = Close) %>% list_parse() x <- c("Open", "Close", "Variation") y <- sprintf("{point.%s}", tolower(x)) tooltp <- tooltip_table(x, y) hc <- highchart(width = 630, height = 450) %>% hc_title(text = "Bitcoin Exchange Rate (BTC vs. EUR)") %>% hc_subtitle(text = "Tägliche Variation auf bitcoin.de. Letzte 12 Monate")%>% hc_chart( type = "column", polar = TRUE) %>% hc_plotOptions( series = list( stacking = "normal", showInLegend = FALSE)) %>% hc_xAxis( gridLineWidth = 0.8, type = "datetime", labels = list(format = "{value: %b}")) %>% hc_yAxis(showFirstLabel = FALSE) %>% hc_add_series(data = bitliste) %>% hc_add_theme(hc_theme_sandsignika()) %>% hc_exporting(enabled = TRUE) %>% hc_tooltip(useHTML = TRUE, headerFormat = as.character(tags$small("{point.x:%d %B, %Y}")), pointFormat = tooltp) hc
Das Skript: Benötigt werden die Libraries highcharter
für das Diagramm, Quandl
für das Einlesen der Daten, dplyr
für das Bearbeiten des Data Frames und lubridate
für den vereinfachten Umgang mit Datumsangaben. Mehr zu dplyr
unter dplyr. Die Zeile df=Quandl("BCHARTS/BTCDEEUR")
liest die Bitcoin-Daten ein. arrange
und mutate
bringen den Data Frame sogleich in Form. Es folgt ein Zurechtzupfen der Datumsangaben, bevor das Ganze in eine Liste namens bitliste
überführt wird. Anschließend werden die Angaben für die Tooltips definiert.
Es folgt der grafische Teil mit highcharter: Definiert werden zunächst Titel, Subtitel und die Art des Diagramms. polar = TRUE
sorgt für die kreisförmige Darstellung. Die Daten werden mit hc_add_series(data = bitliste) %>%
eingefügt und die Grafik schließlich mit hc
erzeugt. Mehr zu highcharter hier.
Schreibe einen Kommentar