library(leaflet)
leaflet() %>% addTiles() %>% addLegend(
  position = 'bottomright',
  colors = rgb(t(col2rgb(palette())) / 255), labels = palette(),
  title = 'A boring palette'
)

library(maps)
mapState = map("state", fill=TRUE, plot=FALSE)
snames = unique(mapState$names)
snames[snames == 'new york:main'] = 'new york'
snames[snames == 'washington:main'] = 'washington'
snames[grep('^(new york|washington):', snames)] = NA
snames = gsub(':.+$', '', snames)
 
legendMap = function(pal, variable, ...) {
  leaflet(data = mapState) %>% addTiles() %>%
    addPolygons(fillColor = pal(variable), stroke = FALSE, fillOpacity = .5, popup = as.character(variable)) %>%
    addLegend(pal = pal, values = variable, ...)
}
sarea = state.area[match(snames, tolower(state.name))]
pal = colorNumeric('YlOrRd', sarea)
legendMap(pal, sarea, bins = 10, title = 'Area')

pal = colorBin('RdBu', sarea, 4)
legendMap(pal, sarea, title = 'Area')

pal = colorQuantile('BuGn', sarea, 5)
legendMap(pal, sarea, title = 'Area')

sregion = state.region[match(snames, tolower(state.name))]
pal = colorFactor('Dark2', sregion)
legendMap(pal, sregion, title = 'Region')

knitr::knit_exit()