芝生の乱れを可視化する
GitHubには芝生がある。進捗を可視化してくれる緑のアレだ。
芝生の乱れは進捗の乱れ。進捗の乱れは心の乱れということで、芝生から異常値を検出する。
芝生を取得する
以前までは↓にあるようにAPI経由でデータが取得できたのに今はできない。
http://qiita.com/uri/items/f62ae42af8c28a053ad7
仕方が無いので泥臭くデータを取得する。
この人が芝生をローカルで再現すべくNokogiriでごりごりやっていたのでそれを参考にした。
http://blog.akerl.org/2014/12/19/reverse-engineering-github-streaks/
要は下記URLで表示されるSVGから日付とコミット数を取り出せばよいだけ。
rvestで簡単にできる。
以上の話はsinchokurパッケージのgetPubContribtion関数として実装した。
以下で取得できる。
# sinchokurのインストール devtools::install_github("dichika/sinchokur") getPubContribution("dichika")
芝生の乱れを可視化する
これは簡単。最近Twitterから出たAnomalyDetectonパッケージを使えば良い。
# これもgithubからインストールする devtools::install_github("twitter/AnomalyDetection") library(AnomalyDetection) smp <- getPubContribution("dichika") smp$date <- as.POSIXct(paste0(smp$date, " 01:00:00")) #タイムスタンプしか受け付けないのでデータを偽装 res <- AnomalyDetectionTs(smp, max_anoms=0.02, direction='both', plot=TRUE) res$plot