I used to have a simple snippet that showed how to add legends. I did not use the value ~ to legend values, as the norm. I made a traditional DataFrame $ column and it works great.
Now this is an update to see how it all fits together. Here is a full-fledged comparison run after creating all the variable cuts, etc. The final cleared data frame was named zipData p>
# create a full popup # add some HTML for editing the styles zipData$popUp <- paste('<strong>',zipData$Street, '</strong><br>', 'TIV = $',prettyNum(zipData$tiv, big.mark = ',',preserve.width = 'none'), '<br>', 'City: ', zipData$city, '<br>', 'YrBuilt = ', zipData$YearBuilt, '<br>', 'Construction = ', zipData$ConstructionCode, '<br>', 'Occupancy = ', zipData$OccupancyCode, '<br>', 'Premium = $' , prettyNum(zipData$Premium, big.mark = ',',preserve.width = 'none') , '<br>', 'GrossArea = ', prettyNum(zipData$GrossArea, big.mark = ',', preserve.width = 'none'), '<br>', 'RoofYr = ', zipData$RoofYearBuilt, '<br>') # set color scale for key factor colorsConst <- colorFactor(rainbow(4), zipData$ConstructionCode) # color scales for numerical bins colorstivValue <- colorFactor(palette = 'Accent', zipData$tivValueLvl) colorsYrBuilt <- colorFactor(palette = 'Spectral', zipData$yrBuiltLvl) colorsRoofYrBuilt <- colorFactor(palette = "YlOrRd", zipData$roofYrBuiltLvl) # begin the leaflet map construction # create the map opbject m <- leaflet() %>% addTiles() %>% # add different tiles for different color schemes addProviderTiles(providers$OpenStreetMap, group = 'Open SM') %>% addProviderTiles(providers$Stamen.Toner, group = 'Toner') %>% addProviderTiles(providers$CartoDB.Positron, group = 'CartoDB') %>% addProviderTiles(providers$Esri.NatGeoWorldMap, group = 'NG World') %>% setView(lng = -90, lat = 30, zoom = 10) %>% ############################## # this section is for plotting the variables # each variable below is a layer in the map # construction addCircleMarkers(data = zipData, lat = ~Lat, lng = ~Lon, color = ~colorsConst(ConstructionCode), popup = zipData$popUp, radius = 5, group = 'Construction') %>% # tiv addCircleMarkers(data = zipData, lat = ~Lat, lng = ~Lon, color = ~colorstivValue(tivLvl), popup = zipData$popUp, radius = ~tiv/20000, group = 'Bldg Value') %>% # year built addCircleMarkers(data = zipData, lat = ~Lat, lng = ~Lon, color = ~colorsYrBuilt(yrBuiltLvl), popup = zipData$popUp, radius = ~YearBuilt/250, group = 'Yr Built') %>% ###################################### # layer control addLayersControl( baseGroups = c('Open SM', 'Toner', 'Carto DB', 'NG World'), overlayGroups = c('Construction', 'TIV', 'Yr Built' ), options = layersControlOptions(collapsed = F) ) %>% ################################################# add the legends for each of the variables # construction addLegend('bottomright', pal = colorsConst, values = zipData$ConstructionCode, title = 'Construction Code', opacity = 1) %>% # tiv addLegend('bottomleft', pal = colorstivValue, values = zipData$tivLvl, title = 'TIV', opacity = 1) %>% # year built addLegend('topleft', pal = colorsYrBuilt, values = zipData$yrBuiltLvl, title = 'Yr Built', opacity = 1) m # Print the map
Part of the map is shown below.
