Изменить порядок отображения категорий данных в tmap map R - PullRequest
0 голосов
/ 15 мая 2018

Я строю некоторые пространственные данные в R, используя пакет tmap. Я определяю разрывы и цвет графика в функции tm_dots. Я хотел бы иметь возможность определить порядок расположения категорий так, чтобы они определялись категорией (самая высокая категория сверху, вторая самая высокая ниже и т. Д.). Мне нужно четко видеть, где находятся очки высшей категории. Я знаю, что это может быть достигнуто с несколькими кадрами пространственных точек данных, но есть ли другой, менее неуклюжий способ? Ниже приведен пример использования данных meuse. Я делаю очки огромными, чтобы они пересекались. Так что в идеале здесь, в сюжете порядок следования должен быть: синий, зеленый, оранжевый, красный.

libary(tmap)
library(sp)

data("meuse")

coordinates(meuse) <- c("x","y")

tm_layout() +
  tm_shape(meuse) + tm_dots("cadmium", breaks = c(1,2,3,4,Inf), palette = "-Spectral", auto.palette.mapping = FALSE,
                            size = 1) + 
  tm_legend(legend.outside = TRUE)

enter image description here

1 Ответ

0 голосов
/ 16 мая 2018

Получается, что порядок печати по умолчанию является исходным порядком строк фрейма данных. Чтобы отобразить категории в правильном порядке, я создаю числовую факторную переменную для категорий и сортирую по ней исходный фрейм данных.

libary(tmap)
library(sp)
library(dplyr)

data("meuse")

meuse <- meuse %>% 
         mutate(cat = base::cut(cadmium, breaks = c(-Inf,1,2,3,4,Inf), 
                         labels = c(1,2,3,4,5))) %>% 
         arrange(cat)

coordinates(meuse) <- c("x","y")

tm_layout() +
  tm_shape(meuse) + tm_dots("cadmium", breaks = c(1,2,3,4,Inf), palette = "-Spectral", auto.palette.mapping = FALSE,
                            size = 1) + 
  tm_legend(legend.outside = TRUE)

enter image description here

...