Add a legend that for the sizing of symbols
addLegendSize( map, pal, values, title = NULL, labelStyle = "", shape = c("rect", "circle", "triangle", "plus", "cross", "diamond", "star", "stadium"), orientation = c("vertical", "horizontal"), color, fillColor, strokeWidth = 1, opacity = 1, fillOpacity = opacity, breaks = 5, baseSize = 10, numberFormat = function(x) { prettyNum(x, big.mark = ",", scientific = FALSE, digits = 1) }, group = NULL, className = "info legend leaflet-control", ... ) sizeNumeric(values, baseSize) sizeBreaks(values, breaks, baseSize, ...) makeSizeIcons( values, shape = c("rect", "circle", "triangle", "plus", "cross", "diamond", "star", "stadium"), pal, color, colorValues, fillColor, opacity, fillOpacity = opacity, strokeWidth = 1, baseSize, ... )
map | a map widget object created from 'leaflet' |
---|---|
pal | the color palette function, generated from colorNumeric |
values | the values used to generate sizes and if colorValues is not specified and pal is given, then the values are used to generate colors from the palette function |
title | the legend title, pass in HTML to style |
labelStyle | character string of style argument for HTML text |
shape | shape of the color symbols |
orientation | stack the legend items vertically or horizontally |
color | the color of the legend symbols, if omitted pal is used |
fillColor | fill color of symbol |
strokeWidth | width of symbol outline |
opacity | opacity of the legend items |
fillOpacity | fill opacity of the legend items |
breaks | an integer specifying the number of breaks or a numeric vector of the breaks |
baseSize | re-scaling size in pixels of the mean of the values, the average value will be this exact size |
numberFormat | formatting functions for numbers that are displayed e.g. format, prettyNum |
group | group name of a leaflet layer group |
className | extra CSS class to append to the control, space separated |
... | arguments to pass to addControl for addLegendSize pretty for sizeBreaks makeSymbol for makeSizeIcons |
colorValues | the values used to generate color from the palette function |
an object from addControl
library(leaflet) data("quakes") quakes <- quakes[1:100,] numPal <- colorNumeric('viridis', quakes$depth) sizes <- sizeNumeric(quakes$depth, baseSize = 10) symbols <- Map( makeSymbol, shape = 'triangle', color = numPal(quakes$depth), width = sizes, height = sizes ) leaflet() %>% addTiles() %>% addMarkers(data = quakes, icon = icons(iconUrl = symbols), lat = ~lat, lng = ~long) %>% addLegendSize( values = quakes$depth, pal = numPal, title = 'Depth', labelStyle = 'margin: auto;', shape = c('triangle'), orientation = c('vertical', 'horizontal'), opacity = .7, breaks = 5) # a wrapper for making icons is provided sizeSymbols <- makeSizeIcons( quakes$depth, shape = 'cross', pal = numPal, color = 'black', strokeWidth = 1, opacity = .8, fillOpacity = .5, baseSize = 20 ) leaflet() %>% addTiles() %>% addMarkers(data = quakes, icon = sizeSymbols, lat = ~lat, lng = ~long) %>% addLegendSize( values = quakes$depth, pal = numPal, title = 'Depth', shape = 'cross', orientation = 'horizontal', strokeWidth = 1, opacity = .8, fillOpacity = .5, color = 'black', baseSize = 20, breaks = 5) # Group layers control leaflet() %>% addTiles() %>% addLegendSize( values = quakes$depth, pal = numPal, title = 'Depth', labelStyle = 'margin: auto;', shape = c('triangle'), orientation = c('vertical', 'horizontal'), opacity = .7, breaks = 5, group = 'Depth') %>% addLayersControl(overlayGroups = c('Depth'))