1

テキストの壁については事前に申し訳ありません。私は一種の斬新なタイプのコロプレス マップを作成しています。このマップでは、さまざまなカテゴリ変数に基づいて国が陰影付けされています。私がアプリをセットアップした方法では、基礎となる各変数のレベルに基づいて各国に RGB 値を割り当て、マップにその RGB 値を表示させたいと考えています。

残念ながら、ほとんどのマップ ビジュアライゼーションは、私に選択させるのではなく、私に代わって色の選択を行いたいようです。私ができる最善の方法は、データをカテゴリとして扱うことであり、国と同じ数のカテゴリになります。これは、rworldmap ではかなりうまく機能しました。問題は、私はこれを Web 用に開発していて、特定の国にカーソルを合わせることができるツールチップが本当に欲しいのですが、これは基本的なプロットであるため、rworldmap では機能しません。また、rworldmap の出力は見栄えがよくありません。

これで使用したコードは次のとおりです。

mapjoin <- joinCountryData2Map(db, joinCode="ISO3", 
  nameJoinColumn="iso", mapResolution="high")

mapCountryData(mapjoin, nameColumnToPlot="iso", addLegend=FALSE,
  catMethod="categorical", colourPalette=db$rgb, mapTitle=input$year)

私は googleVis を試してみましたが、これには多くの問題がありました。地図が理由もなく消えてしまい、ページをリロードする必要がありました。これは、googleVis パッケージの Shiny バインディングの問題だと思います。 . 私は最終的に googleCharts ( https://github.com/jcheng5/googleCharts ) を使用しました。これにより、バインディングの問題が解決されます。

しかし、私はまだ問題を抱えています。

リアクティブ関数は次のとおりです。

output$mapviz <- reactive({
  db <- genRgb()

  list(
    data=googleDataTable(db[c("country", "id")]),
    options=list(legend="none", projection="kavrayskiy-vii", colors=db$rgb)
  )
)}

出力呼び出しは次のとおりです。

googleGeoChart("mapviz", width="100%", height="780px")

ご覧のとおり、JS アプリがカテゴリ データであることを特定する方法はありません。その結果、182 の異なるグラデーション ストップ ポイントを持つコロプレスが作成されます。通常はこれでうまくいきますが、ときどき奇妙なことが起こり、不思議なことに国が色の中間の場所になってしまうことがあります。特定の国は特定の色であると想定されているため、問題があることは常にわかります (たとえば、米国は #0000FF と表示され、そうでない場合は明らかです)。別のチャート タイプ (アプリは他の googleCharts タイプを使用) に移動してからマップに戻ると、通常は修正されることがわかりました。だから完全に矛盾している。

それを念頭に置いて、この目的に適した、Shiny で実装できるより優れたマッピング ツールを提案できる人はいますか?

ありがとう!

4

1 に答える 1