2016-07-06 3 views
6

Я пытаюсь изменить цвета карты choropleth. Я использую пакет листовки и функцию colorNumeric(), вот код, который генерирует функцию палитры:обратные цвета в цветеNumeric()

pal <- colorNumeric(palette = "YlGnBu", domain = foo$p) 

Я хотел бы сделать что-то вроде этого:

pal <- colorNumeric(palette = "YlGnBu", domain = foo$p, trans='reverse') 

Кто-нибудь знает, как это сделать это?

+1

Можете ли вы предоставить воспроизводимый пример? – Alex

+0

Do 'pal [length (pal): 1]' работает? – Robert

+2

Возможный дубликат [Как изменить порядок вектора?] (Http://stackoverflow.com/questions/18933441/how-to-reverse-order-a-vector) – Jota

ответ

5

Без примера я не могу сказать, если он работает с кодом, но попробуйте это:

library(RColorBrewer) 
palette <- brewer.pal(5, "YlGnBu") 
previewColors(colorNumeric(palette = palette, domain = 1:5), values = 1:5) 

enter image description here

И наоборот:

palette_rev <- rev(brewer.pal(5, "YlGnBu")) 
previewColors(colorNumeric(palette = palette_rev ,domain = 1:5), values = 1:5) 

enter image description here

+0

Это хорошо работает! Спасибо. –

1

Как было предложено by @Alex вот пример, используя rev с некоторыми фактическими данными:

library(leaflet) 
library(mapview) 
library(RColorBrewer) 

clrs <- rev(brewer.pal(9, "YlGnBu")) 

pal <- colorNumeric(palette = clrs, domain = poppendorf[[5]][]) 

m <- leaflet() %>% addTiles() 

m %>% 
    addRasterImage(x = poppendorf[[5]], color = pal) 
+0

Не было совершено преступления! Вы должны были дать свой ответ, пока я все еще пытался и набрал свой ответ ... Я отредактировал мой, чтобы подтвердить ваше мнение. – TimSalabim

0

По крайней мере, в листовке 1.1.0+ colorNumeric имеет дополнительный «обратный» аргумент, так что вы можете просто сделать:

pal <- colorNumeric(palette = "YlGnBu", domain = foo$p, reverse = TRUE)