統計コンサルの議事メモ

統計や機械学習の話題を中心に、思うがままに

ggvisによるRで可視化

面白いパッケージを発見したので紹介。可視化のための機能を提供してくれるもので、{ggvis}というもの。もしかすると{ggplot2}を超えるかもしれない。

使い方が非常にシンプルで、思想として{ggplot2}に似ているので慣れた人にはスイッチしやすいと思う。dplyrユーザーにはお馴染みの%>%演算子を使用可能というのもよい。

ひとまず試してみる。

## Library installation
install.packages("ggvis")

## Load library
library(ggvis)

ggvisの実行。

mtcars %>% 
   ggvis(~mpg, ~wt, fill = ~factor(cyl)) %>%
   layer_points()

このように可視化に用いるデータを%>%で後続の処理に渡し、後から可視化に用いるグラフを指定する形式は{ggplot2}と同じ。

では{ggvis}の何が面白いかというと、Shinyのようなインタラクティブな操作が可能なグラフを以下のように簡単に作成できること。

以下をお試しあれ。

data.frame(x = rnorm(1000)) %>%
   ggvis(~x, fill := input_select(c("red", "blue", "green"))) %>%
   layer_histograms(width = input_slider(0.01, 3, 0.1, 0.01, label="bin_width"))

連続量のヒストグラムを作成するとき、ビンの幅を決めるのは以外に難しい。R標準のパッケージである{graphics}のhistや、{MASS}のtruehistは所定のアルゴリズム(ScottとかFDとか)に基づいて自動的に決定してくれるが、実際にデータを分析する立場からするとビンを様々に変えながら眺めたいところ。
そのような時にShinyのようにインタラクティブにビン幅を変えられると嬉しいのだが、Shinyは準備に手間がかかるのでなかなか手が出ない。それを{ggvis}では先ほどのように簡単なコマンドでインタラクティブなグラフを作成できる。

他にも

mtcars %>% 
   ggvis(x = ~wt, y = ~mpg) %>% 
   layer_points() %>% 
   layer_smooths(span = input_slider(0, 1, 0.5, 0.1, label = "span")) 

このような使い方ができる。

このパッケージはまだ開発の途上のようで、demoで見ようとしたいくつかの機能がエラーで見れなかったり、作成したグラフが保存できなかったりする(だからこのブログでもグラフの画像を貼っていない)。
今後の修正に大きく期待できる、面白いパッケージだと思う。