AddLegend Отображение диапазона значений вместо процента при использовании colorQuantile - PullRequest
0 голосов
/ 21 мая 2019

Я использую R блестящий приборной панели для отображения растрового файла погоды. Я использовал colorQuantile в качестве метода для отображения цвета. В легенде это показывает процент. Как вы можете видеть на следующем изображении. Я хочу, чтобы надписи в легенде отображали диапазон значений для каждого бина. Я не уверен, как это сделать.

Legend that displaying '%'

Вот мой сервер. R

output$weather_map <- renderLeaflet({
        rw = weatherband()

        if (!is.null(rw)) {
            pal_w = colorQuantile('RdYlGn', values(rw), na.color = 'transparent', n = 7)

            leaflet() %>%
                addTiles() %>% 
                addRasterImage(rw, colors = pal_w, opacity = 0.5) %>%
                addLegend(position = 'topright', pal = pal_w, value = raster::values(rw), opacity = 1)            
        }
    })

Примечание: rw - растровое изображение.

Заранее спасибо !!

1 Ответ

1 голос
/ 21 мая 2019

Когда мне нужно настроить метки в leaflet, я прибегаю к использованию аргументов colors и labels вместо pal и values. Плюс в том, что вы можете настроить минус еще несколько строк кода.

Поскольку у меня нет доступа к rw, я беру свой любимый пример карты:

library(sf)
nc <- st_read(system.file("shape/nc.shp", package="sf"))

Затем альтернативный шаблон leaflet для настройки меток легенды:

library(leaflet)
qpal <- colorQuantile("RdYlBu", nc$AREA, n = 5)

# the extra code building off the existing pal
qpal_colors <- unique(qpal(sort(nc$AREA))) # hex codes
qpal_labs <- quantile(nc$AREA, seq(0, 1, .2)) # depends on n from pal
qpal_labs <- paste(lag(qpal_labs), qpal_labs, sep = " - ")[-1] # first lag is NA

map %>%
  addPolygons(stroke = FALSE, smoothFactor = 0.2, fillOpacity = 1,
              color = ~qpal(AREA)
  ) %>%
  addLegend(colors = qpal_colors, labels = qpal_labs, opacity = 1)

enter image description here

...