2017-10-04 6 views
0

J'ai joué avec le paquet leaflet et je ne peux pas créer une légende appropriée pour un raster.Leaflet: légende de corbeille personnalisée pour le raster

Le problème est le suivant: J'ai créé une carte informative avec ce code:

fichier raster: https://drive.google.com/open?id=0B7mw858dxh5MODZqSHNHbFR3clU

library(raster) 
library(leaflet) 
r <- raster('raster.tif') 
colores <- c('red', 'green', 'blue', 'chocolate', 'deeppink', 'grey') 
at <- seq(0, 4800, 800) 
cb <- colorBin(palette = colores, bins = length(at), domain = at) 

leaflet() %>% 
    setView(-67.5,-16, zoom = 7) %>% 
    addRasterImage(r, colors = cb) %>% 
    addLegend(pal = cb, values = at) 

variable r est une trame avec des données de précipitations allant de 171 à 4667 mm /an.

Sortie:

https://i.imgur.com/bt7Ew6O.png

Je veux une légende avec 6 bacs en utilisant les couleurs transmis à la colores variable, mais la sortie montre 10 bacs en ignorant les gammes que je croisais à la variable at.

Comment devrais-je réaliser ce que je veux?

+0

peut vous donner un exemple reproductible? – TimSalabim

+0

@TimSalabim Fichier raster et sortie ajoutés. J'espère que cela aide. – noriega

Répondre

1

Il vous suffit de remplacer length(at) avec at dans votre colorBin appel

library(raster) 
library(leaflet) 
r <- raster('raster.tif') 
colores <- c('red', 'green', 'blue', 'chocolate', 'deeppink', 'grey') 
at <- seq(0, 4800, 800) 
cb <- colorBin(palette = colores, bins = at, domain = at) 

leaflet() %>% 
    setView(-67.5,-16, zoom = 7) %>% 
    addRasterImage(r, colors = cb) %>% 
    addLegend(pal = cb, values = at) 
+0

Cela a fonctionné. THX. – noriega