Создание карты точечных символов с цветом на основе пользовательских интервалов

По сути, значение accessibility_round может быть от >0 to Inf, поэтому я хочу раскрасить точку на основе следующего правила.

>0 to 20 - Color1
>20 to 100 - Color2   
>100 to 1000 - Color3   
>1000 to 10000 - Color4 (assume no value larger than 10000 except Inf)
Inf - Color5     

Я новичок в R, новичок в использовании tmap, и я не уверен, как установить пользовательские интервалы. Но это то, что я пробовал до сих пор.

 tm_shape(schools)+
      tm_symbols(title.col = "Accessibility", style = "fixed",breaks = c(0,20,100,1000,10000,Inf), col="accessibility_round",size = 0.3,
                 palette = "Accent", auto.palette.mapping = FALSE,interval.closure = "right") +
      tm_layout(legend.outside = TRUE, legend.outside.position = "bottom", legend.stack = "horizontal")

person root    schedule 01.03.2017    source источник


Ответы (1)


Что именно не работает? Это делает работу, если я правильно вас понимаю:

data(World)
World$pop_est[World$pop_est>1e9] <- Inf 

tm_shape(World) +
    tm_symbols(col="pop_est",size = 0.3, 
        title.col = "Population", 
        style = "fixed",
        breaks = c(0,1e6,1e7,1e8,1e9,Inf), 
        palette = "Accent",
        auto.palette.mapping = FALSE,
        interval.closure = "right",
        labels = c("0 to 1e6", "1e6 to 1e7", "1e7 to 1e8", "1e8 to 1e9", "Inf")) +
tm_shape(World[which(World$pop_est==Inf),]) +
    tm_text("name") +
tm_layout(legend.outside = TRUE, legend.outside.position = "bottom", legend.stack = "horizontal")
person Martijn Tennekes    schedule 04.03.2017