У меня есть набор точечных данных, который я хотел бы нанести на карту. Я новичок в tmap
и играл с ним, но не смог получить желаемый результат. Мне нужно что-то, что делает следующее (если возможно):
- Отображать баллы только для обозначенного
area
(например, A002) - Раскрасьте точки на основе
value
и укажите, какие это цвета (например, 0 = зеленый, 1 = синий и 2 = красный) - Отображение легенды внутри карты с произвольным заголовком (например, номера легенды)
- Разрешить размещение произвольного текста в легенде (например, 0 [какой-то текст]; 1 [какой-то текст]; 2 [какой-то текст]
- При наведении курсора на точку отображается запись в
label
. - При нажатии на точку отображаются все атрибуты (например, значения для кода, площади, значения и метки).
Это код, который я использовал:
require("data.table")
require("sf")
require("tmap")
dt1 <- data.table(
code=c("A00111", "A00112","A00113","A00211","A00212","A00213","A00214","A00311","A00312"),
area=c("A001", "A001","A001","A002","A002","A002","A002","A003","A003"),
x=c(325147,323095,596020,257409,241206,248371,261076,595218,596678),
y=c(286151,284740,335814,079727,084266,078283,062045,333889,337836),
value=c(0,1,2,0,1,1,2,2,2),
label=c("A00 111", "A00 112","A00 113","A00 211","A00 212","A00 213","A00 214","A00 311","A00 312"))
sf1 <- st_as_sf(dt1, coords = c("x","y"), crs=27700, na.fail=FALSE)
tmap_mode("view")
map <- tm_shape(sf1) + tm_dots(group = "value", breaks = c(0,1,2,Inf), palette = c("aquamarine2", "cornflowerblue", "brown1"))
map