Несколько слоев на карте с пакетом ggvis

Я использую несколько слоев ssplot для отображения цвета провинций внутри региональных границ на карте Италии. Это мой код:

library(raster)
library(latticeExtra)
setwd("c:\\temp")
gadm<-getData('GADM', country='Italy', level=2)
gadm2<-getData('GADM', country='Italy', level=1)

spplot(gadm, "ID_2",col=NA)+
layer(sp.polygons(gadm2, first=F))

Теперь я хотел бы создать интерактивную карту с пакетом ggvis. Я начал создавать основную карту с региональными границами:

library(ggvis)
library(ggplot2)
library(rgeos)

#convert in a data frame
map2 <- fortify(gadm2, region="NAME_1")
map<- fortify(gadm, region="NAME_2")


map2%>%
  ggvis(~long, ~lat) %>%
  group_by(group, id) %>%
  layer_paths(strokeOpacity:=0.5, stroke:="#7f7f7f") %>%
   hide_axis("x") %>% hide_axis("y") %>%
  set_options(width=400, height=600, keep_aspect=TRUE)

Теперь я не понимаю, как построить еще один слой с провинциальными цветами.


person dax90    schedule 26.03.2015    source источник


Ответы (1)


Два ключа: layer_paths может принимать аргумент заполнения для заполнения внутренней части полигона, и вы можете указать новый набор данных в самом слое (аналогично ggplot2).

map2%>%
  ggvis(~long, ~lat) %>%
  group_by(group, id) %>%
  layer_paths(data = map %>% group_by(group, id), 
              strokeWidth := 0, fill = ~id) %>%
  layer_paths() %>%
  hide_axis("x") %>% hide_axis("y") %>%
  set_options(width=400, height=600, keep_aspect=TRUE)

(Я избавился от strokeOpacity:=0.5, stroke:="#7f7f7f", потому что думал, что из-за этого неясно, где находятся границы, но вы можете добавить их обратно, если хотите)

person GregF    schedule 26.03.2015