1

R の Shiny アプリケーションでインタラクティブなコロプレスを開発しようとしています。plotly、gVis、rCharts を試しましたが、まだ運がありません。今はスウェーデンのためにそれを視覚化する必要がありますが、後で他の国でも必要になるでしょう. これは、gvisGeoMap についてこれまでに得たものです。

polygons <- readOGR("/ggshape", layer="SWE_adm1")
polygons <- fortify(polygons, region="ID_1")
data.poly <- as.data.frame(polygons)
data.poly <- data.poly[,c(1,2)]
data.poly.final <- data.frame(locationvar = paste(data.poly[,2],data.poly[,1], sep = ":"), 
                              numvar=1, 
                              hovervar="test")

data.poly.final$locationvar <- as.character(data.poly.final$locationvar)
data.poly.final$hovervar <- as.character(data.poly.final$hovervar)


map <- gvisGeoMap(data=data.poly.final, locationvar = "locationvar", 
                  options=list(width='800px',heigth='500px',colors="['0x0000ff', '0xff0000']",
                               dataMode = "markers"))
plot(map)

ドキュメントに基づいて、ここで試しているように緯度と経度の座標を使用できるはずですが、まだ成功していません。私が使用しているシェープファイルはhttp://www.gadm.org/downloadからのものです

基本的に、インタラクティブな視覚化を gadm.org のシェープファイルで動作させる方法を知っている人はいますか?

これは私がggplotでそれを行う方法です

      SWE <- fortify(polygons, region="ID_1")
      SWEplot <- merge(x=SWE, y=my_data, by="id")

        p <- ggplot() +
          geom_polygon(data = SWEplot , aes(x = long, y = lat, group = group, fill = Patients)) + 
          geom_path(color="black") + 
          theme(axis.ticks.y = element_blank(),axis.text.y = element_blank(), # get rid of x ticks/text
                axis.ticks.x = element_blank(),axis.text.x = element_blank(), # get rid of y ticks/text
                plot.title = element_text(lineheight=.8, face="bold", vjust=1),
                panel.background = element_blank(), panel.grid.major = element_blank(),
                panel.grid.minor = element_blank(),
                legend.text=element_text(size=14),
                legend.title=element_text(size=16)) + # make title bold and add space
          coord_equal(ratio=1)

生産する

ここに画像の説明を入力

希望どおりですが、対話性はありません。私が本質的に達成したいと思っているのは、このhttp://rcharts.io/viewer/?6735051#.V1px-7t97mEのようなものですが、もちろんスウェーデン向けです。

4

2 に答える 2

5

与えられた

library(raster)
swe <- getData("GADM", country = "SWE", level = 1)
swe$Patients <- runif(1:nrow(swe))

あなたは例えばすることができます

library(maptools)
library(rgeos)
library(broom)
library(ggplot2)
library(plotly)
swe_s <- gSimplify(swe, .01)
SWE <- fortify(swe_s, region="ID_1")
SWEplot <- merge(x=SWE, y=swe, by.x="id", by.y="ID_1")
ggplot() +
  geom_polygon(data = SWEplot , aes(x = long, y = lat, group = group, fill = Patients)) + 
  coord_quickmap() +
  ggthemes::theme_map() + theme(legend.position=c(.8, .2)) ->
  p
ggplotly(p)

ここに画像の説明を入力

また

library(leaflet)
pal <- scales::seq_gradient_pal(low = "#132B43", high = "#56B1F7", space = "Lab")(seq(0, 1, length.out = 255))
leaflet() %>%
  addPolygons(
    data = swe,
    color = "#000", weight = 1, opacity = 0.5,
    fillColor = ~colorNumeric(pal, swe$Patients)(Patients), fillOpacity = 1, 
    popup = with(swe@data, htmltools::htmlEscape(sprintf("%s: %s", NAME_1, Patients)))
  )

ここに画像の説明を入力

于 2016-06-10T17:03:41.440 に答える
2

から SpatialPolygosDataFrame を指定すると、残りの作業を行うためにgetData使用できます。library(mapview)

library(raster)
library(mapview)

swe <- getData("GADM", country = "SWE", level = 1)

mapview(swe)

プロットする属性を制御するには、zcol引数を使用します。

于 2016-06-10T19:01:36.540 に答える