我创建了一个传单 map ,现在需要自定义图例的顺序.默认情况下,leaflet
按字母顺序排列图例顺序.在下面的示例中,我需要图例顺序为(from top to bottom):夏洛茨维尔、里士满、夏洛特、罗利.如何自定义传单图例顺序?
示例:
# Import needed libraries
library(tidyverse)
library(leaflet)
# Create example dataset
aa <- data.frame(
city = c('Richmond','Charlottesville', 'Raleigh', 'Charlotte'),
lat = c(37.53,38.01,35.78,35.22),
lon = c(-77.44,-78.47,-78.63,-80.84))
# Create custom colors for markers
pal <- leaflet::colorFactor(c('springgreen', 'dodgerblue', 'red', 'purple'),
domain = c('Richmond','Charlottesville', 'Raleigh', 'Charlotte'),
ordered = TRUE)
# Make map
aa %>%
leaflet(options = leafletOptions(attributionControl = F,
zoomControl = F)) %>%
addTiles() %>%
addProviderTiles("Esri.WorldImagery") %>%
setView(-78.47,
36.53,
zoom = 7) %>%
addCircleMarkers(
lng = aa$lon,
lat = aa$lat,
label = aa$city,
fillColor = pal(aa$city),
fillOpacity = 1,
color = "black",
stroke = TRUE,
weight = 2,
radius = 5) %>%
addLegend('topright', pal = pal, values = aa$city, title = 'City', opacity = 1)
- Here is a link回答了一个类似的问题,以至于我无法开始工作
UPDATE:
按照上面链接的类似SO问题的答案,我可以重新排序图例,但现在图例 colored颜色 与 map 上的标记 colored颜色 不匹配.
例如,在下面的图例中,夏洛特是红色的,但在 map 上夏洛特是紫色的(即,夏洛特的图例 colored颜色 应该是紫色).需要能够定制重新排序的图例,并保持适当的 colored颜色 设置.
# Create a new grouping variable
ord <- factor(aa$city, labels = c('Charlottesville', 'Richmond', 'Charlotte', 'Raleigh'))
# Create custom colors for markers
pal <- colorFactor(c('springgreen', 'dodgerblue', 'red', 'purple'),
levels = ord, ordered = TRUE)
# Make map
aa %>%
leaflet(options = leafletOptions(attributionControl = F,
zoomControl = F)) %>%
addTiles() %>%
addProviderTiles("Esri.WorldImagery") %>%
setView(-78.47,
36.53,
zoom = 7) %>%
addCircleMarkers(
lng = aa$lon,
lat = aa$lat,
label = aa$city,
fillColor = pal(ord),
fillOpacity = 1,
color = "black",
stroke = TRUE,
weight = 2,
radius = 5) %>%
addLegend('topright', pal = pal, values = ord, title = 'City', opacity = 1)
^图例 colored颜色 与 map colored颜色 不匹配(即夏洛特在 map 上为紫色,但在图例中为红色).