rChartsの作者の人が、
rMapsっていうのつくったよ、とツイートしていました。
rMaps v0.1 for Interactive Maps from R http://t.co/w5zE8jskrK #rstats pic.twitter.com/91xfTxXCwL
— Ramnath Vaidyanathan (@ramnath_vaidya) 2014, 2月 10
Githubに載ってる例を見るとおしゃれだったので、軽く触ってみました。
さくさくっと地図がいじれて楽しいです。時間があるときにちょっと戯れてみたくなる感じです。
が、ひとつつまづいたのは、 なにかいい感じの地図を作ったとして、それをどうやって世の中にシェアしたらいいのか、という点です。
README
、ブログにも、その辺はあまり触れられていません。
とりあえずHTMLをコピーしてみる。
RStudioでみる場合は、例えばサンプルにもある以下のコードを入力すると、 Viewerのタブに地図が出ます。
library(rMaps) crosslet( x = "country", y = c("web_index", "universal_access", "impact_empowerment", "freedom_openness"), data = web_index )
で、以下のボタンを押すと、ブラウザが立ち上がって、同じ地図が表示されます。
これのHTMLソースをそのままコピペすればいけるんじゃないか、 と思って、コピペしたものをファイルに保存し、ブラウザで開いてみたところ...何も表示されません。
うむむ。
どうやらShinyのアプリケーションとして動いているらしく、
そのままでは静的なHTMLとしては動かないようです。
rCharts的にやってみる。
これもrChartsのオブジェクトっぽいので、同じやり方でできるのかなーと思ってrChartsのドキュメントをみると、
どうやらpublish
というのでgistとかRPubに公開できるらしいです。
rChartsのドキュメント:ramnathv/rCharts
で、試してみると、謎のエラーが出ます。。
> map$publish('Test: Publishing rMap', host='gist') Error in mapply(FUN = f, ..., SIMPLIFY = FALSE) : zero-length inputs cannot be mixed with those of non-zero length
これもだめなのか、ともう諦めかけていたところに、
rChartsのギャラリーをぼんやり眺めていると、地図がありました。
http://rcharts.io/viewer/?6735051
で、そこのコメント欄でRamnath Vaidyanathan氏がこんなコメントをしています。おお!
It works for me. Here is an example that you can copy and play with https://gist.github.com/ramnat.... The key is to use
iframesrc
and cdn = TRUE so that the chart is inlined as an iframe and all css/js assets are served from an online cdn.
とりあえず、show
というやつを使えば、HTMLを吐いてくれるらしいです。
ということでやってみると、
> map$show('iframesrc',cdn=T) Error in mapply(FUN = f, ..., SIMPLIFY = FALSE) : zero-length inputs cannot be mixed with those of non-zero length
同じエラーでダメでした。。
どうやら、Leaflet
だとrChartのやり方で大丈夫だけど、DataMaps
とCrossLet
は違う、ということのようです。
心が折れたので今日はここまで。
またあしたがんばります。