最近、ggplot以外での可視化ライブラリを探していたが、今回触れてみたhighcharterがかなり良いのでまとめておく。
前処理
library(tidyverse) library(highcharter) library(xts) stock = read.csv("all_stocks_5yr.csv") fang = filter(stock, Name %in% c("AAPL", "AMZN", "FB", "NFLX", "GOOGL")) fang$date = as.Date(fang$date) fang = filter(fang, date > "2016-01-01")
データはkaggleに掲載されている上記のS&P500の株価データを用います。代表としてApple(AAPL
),Amazon(AMZN
), Facebook(FB
), Netflix(NFLX
), Alphabet(GOOGL
)の2016年1月から2018年2月までの約2年のデータを用います。
hchart(): tibbleデータ可視化
ベースとなる構文
hchart(filter(fang, Name == "GOOGL"), hcaes(x = date, y = close), type = "line", color = "red")
tibbleデータを可視化使用となるとこの基本の関数がもっとも便利。引数color
でプロットの色を帰ることができる。かなりggplot
との共通点が多く、同様にデータを指定し、hcaes(x, y, ...)
で詳細部分を指定いく。
OHLCデータ
hchart(filter(fang, Name == "GOOGL"), hcaes(x = date, y = close), type = "candlestick")
金融データの可視化をメインに行うパッケージなだけに、引数type = "line"
以外にも便利なオプションが揃っている。上ではローソク足チャートを表示する"candlestick"
を試した。
複数のデータをプロットする
hchart(fang, hcaes(x = date, y = close, group = Name), type = "line")
複数のデータを同時に描画するためにはgroup
で指定する。上の例のように表示したくないデータをクリックすると、勝手にプロットの見栄えを最適化してくれる。この部分が自分的には気に入っている部分。
highchart(): xtsデータの可視化
google = fang %>% filter(Name == "GOOGL") %>% select(date, close) amazon = fang %>% filter(Name == "AMZN") %>% select(date, close) amazon_xts = as.xts(amazon$close, amazon$date) google_xts = as.xts(google$close, google$date)
ベースとなる構文
highchart(type = "stock") %>% hc_add_series(amazon_xts)
type = "stock"
と記述するだけで、hchart()
関数ではサポートされていなかった様々な機能が使える。主な違いは期間の指定や、スパンの指定などを容易に行えることだ。
複数のデータの可視化
highchart(type = "stock") %>% hc_add_series(amazon_xts, color = "yellow", name = "AMAZON") %>% hc_add_series(google_xts, color = "red", name = "GOOGLE")
複数のデータの可視化はレイヤーごとにhc_add_series()
を重ねていく。