library(knitr)
opts_chunk$set(prompt=TRUE, warning=FALSE, error=FALSE, results = "asis", comment=NA, tidy=FALSE, message=FALSE)
library(dplyr)
library(RFinanceJ)
library(zoo)
library(xts)
library(dygraphs)
まず, チュートリアルページを参考に, それっぽいグラフを作ってみます.
> library(dygraphs)
> ## ts クラスのデータを与えます.
> mdeaths %>% class
[1] “ts”
> lungDeaths <- cbind(mdeaths, fdeaths)
> lungDeaths %>% class
[1] “mts” “ts” “matrix”
> dygraph(lungDeaths)
なるほど. マウスを当てると値が出てくるの凄い(小並感).
dyRangeSelector()を与えると, かっこよくなります.
> dygraph(lungDeaths) %>%
+ dyRangeSelector()
下のバーで期間指定がインタラクティブにできます.
なるほどチャラいです.
好きなデータでdygraphしてみたいです.
手持ちの時系列データが入っているdataframeを使ってみたいです.
しかし, dygraphはdataframeではダメで, xtsという謎形式に変換する必要があります.
Dateカラムがあるなら, data.frameに変換してからread.zooしてas.xtsすればいいみたいです.
よく分かりませんが, とりあえず動きますのでやってみます.
適当な会社の株価のデータを取ってきます.
> dat_nssol <- rfj('2327', start_date="2014-6-1", end_date="2014-12-01")
> head(dat_nssol)
Source: local data frame [6 x 7]
Date Open High Low Close Volume AdjClose
1 2014-12-01 3155 3225 3155 3185 189800 3185 2 2014-11-28 3135 3150 2980 3125 279600 3125 3 2014-11-27 3135 3160 3115 3145 108500 3145 4 2014-11-26 3120 3180 3105 3155 235900 3155 5 2014-11-25 3165 3175 3110 3125 184200 3125 6 2014-11-21 3195 3215 3140 3165 150600 3165
時系列データをグラフにしてみます.
> dat = dat_nssol %>%
+ select(-Volume, -AdjClose) %>%
+ as.data.frame %>%
+ read.zoo %>% as.xts
> ## 始値, 終値, 高値, 安値
> dat %>%
+ dygraph() %>%
+ dyRangeSelector()
株価が上がっていますね. いい会社なのでしょう.
高値と安値の間, というグラフを作りたいです.
dySeriesに, 安値, 終値, 高値の順番で列名を与えればいいみたいです.
> dat_nssol %>%
+ select(Date, High, Low, Close) %>%
+ as.data.frame %>%
+ read.zoo %>% as.xts %>%
+ dygraph(main = "Stock Price (nikkei2327)") %>%
+ dySeries(c("Low", "Close", "High")) %>%
+ dyRangeSelector()
dyShadeingに期間と色を与えればOK.
> dat_nssol %>%
+ select(Date, High, Low, Close) %>%
+ as.data.frame %>%
+ read.zoo %>% as.xts %>%
+ dygraph(main = "Stock Price (nikkei2327)") %>%
+ dySeries(c("Low", "Close", "High")) %>%
+ dyRangeSelector() %>%
+ dyShading(from = "2014-07-01", to = "2014-09-01", color = "#CCEBD6")
dyEventに日付を与えればOK.
> dat_nssol %>%
+ select(Date, High, Low, Close) %>%
+ as.data.frame %>%
+ read.zoo %>% as.xts %>%
+ dygraph(main = "Stock Price (nikkei2327)") %>%
+ dyRangeSelector() %>%
+ dySeries(c("Low", "Close", "High")) %>%
+ dyShading(from = "2014-07-01", to = "2014-09-01", color = "#CCEBD6") %>%
+ dyEvent(date = "2014-10-21", "Report", labelLoc="bottom")
チャラい.
knitrbootstrapと合わせようとすると, グラフが表示されません.
どうしましょう.