Многослойные слои на TMAP - PullRequest
1 голос
/ 28 февраля 2020

Я пытаюсь сделать интерактивную карту с разными слоями, в которой пользователь может выбрать один из 8 разных слоев. Форма для всех слоев одна и та же, меняется только столбец.

В идеале я хотел бы что-то подобное, но это не работает, поскольку выбираемые интерактивные слои происходят из tm_shape, а не tm_fill.

library(tmap)

tmap_mode("view") +
 tm_shape(MAP_DATA) +
 tm_fill(col = "COLUMN1") +
 tm_fill(col = "COLUMN2") +
 tm_borders()

Я могу заставить это работать, но это кажется очень неэффективным:

MAP_DATA2 <- MAP_DATA

tmap_mode("view") +
 tm_shape(MAP_DATA) +
 tm_fill(col = "COLUMN1") +
 tm_borders() +
 tm_shape(MAP_DATA2) +
 tm_fill(col = "COLUMN2") +
 tm_borders()

1 Ответ

1 голос
/ 01 марта 2020

Мне кажется, что если вы хотите писать меньше кода, вам придется пожертвовать наличием нескольких слоев на одной карте. Если вы не возражаете против этой жертвы, вы можете сделать следующее. Вы можете указать, какие столбцы вы хотите использовать в tm_polygons(). Вы получите четыре карты одновременно. Тем не менее, вам не нужно много кода. В конце концов, я думаю, это ваш выбор, хотите ли вы код более или менее.

library(tmap)
tm_shape(NLD_muni) +
tm_polygons(col = c("population", "pop_0_14", "pop_15_24",
                    "pop_25_44")) + 
tm_facets(nrow = 2, sync = TRUE)

enter image description here

...