読者です 読者をやめる 読者になる 読者になる

rMapを使ってみる

rChartsの作者の人が、
rMapsっていうのつくったよ、とツイートしていました。

Githubに載ってる例を見るとおしゃれだったので、軽く触ってみました。
さくさくっと地図がいじれて楽しいです。時間があるときにちょっと戯れてみたくなる感じです。

が、ひとつつまづいたのは、 なにかいい感じの地図を作ったとして、それをどうやって世の中にシェアしたらいいのか、という点です。

READMEブログにも、その辺はあまり触れられていません。

とりあえずHTMLをコピーしてみる。

RStudioでみる場合は、例えばサンプルにもある以下のコードを入力すると、 Viewerのタブに地図が出ます。

library(rMaps)
crosslet(
  x = "country", 
  y = c("web_index", "universal_access", "impact_empowerment", "freedom_openness"),
  data = web_index
)

で、以下のボタンを押すと、ブラウザが立ち上がって、同じ地図が表示されます。

f:id:yutannihilation:20140212012800p:plain

これの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のやり方で大丈夫だけど、DataMapsCrossLetは違う、ということのようです。

心が折れたので今日はここまで。
またあしたがんばります。