rChartsのnPlotに関するメモ
rChartsを使って要介護認定の状況を可視化した。
http://rpubs.com/dichika/youkaigo
その際色々と困ったのでメモ。
今回はd3.jsのライブラリの中でもNVd3nを用いるnPlotを可視化に使ったので、その話がメインになるが、それ以外のライブラリを使う場合もやり方は原則として同じだと思われる。
Javascriptのリテラルを渡す時
文字列としてではなくJavascriptのリテラルとしてrChartsに認識させたい時がある。
その際は#! ... !#というシンタックスで包む。
http://stackoverflow.com/questions/19421211/nvd3-scatterplot-with-rcharts-in-r-vary-size-of-points
n1$yAxis(tickFormat = "#!function(d) {return d3.format('%')(d)}!#")
オプションの設定
xAxis.tickValuesやyAxis.tickFormatのようにxAxisやyAxisに関するものは、n1$xAxis(tickValues=ほにゃらら)といった形で設定する。
chart.forceY[0]のようにchartに対して設定したい場合も同様。
n1 <- nPlot(要支援 ~ date, group = "保険者", data = youkaigo, type = "lineChart") n1$xAxis(tickValues="#![11323,11700,12060,12420,12790,13150,13520,13880,14250,14615,14980,15345,15710,16071,16430]!#", tickFormat = "#!function(d) {return d3.time.format('%Y')(new Date( d * 86400000 ));}!#" ) n1$yAxis(tickFormat = "#!function(d) {return d3.format('%')(d)}!#") n1$chart(forceY="#![0]!#")
addControls、addFiltersをうまく使えばShinyいらず
動的な操作を加えたい時、Shinyなどでwebアプリ化するのが普通だがaddControlsやaddFiltersを使えば簡単な操作は行える。
http://rcharts.io/icontrols/#.UwCOG0LV-7I
n1$addControls("y", value = "要支援", values = names(youkaigo)[-(1:3)]) n1$addFilters("area")
knitHTMLする時
通常RStudio上でrChartsで可視化した時の結果をknitHTMLする際はprintを使う。
n1$print("chart1", include_assets=TRUE, cdn=TRUE)
ただし、addControlsを使った時はprintではなくshowを使う必要がある。
https://github.com/ramnathv/rCharts/issues/339
n1$show('iframesrc', cdn = TRUE)
その他
rChartsとは関係ないけどDropboxのpublicフォルダに置いてあるデータを読み込むときは、パブリックリンクのhttpsからsをとってhttpに変えれば読み込める。
# 読み込めない youkaigo <- read.csv("https://dl.dropboxusercontent.com/u/956851/youkaigo_area.csv",as.is=TRUE) # 読み込める youkaigo <- read.csv("http://dl.dropboxusercontent.com/u/956851/youkaigo_area.csv",as.is=TRUE)
enjoy!