R Shiny Leaflet addLegend() 指定标签顺序

问题描述 投票:0回答:1

给出以下示例数据

mydata <- data.frame(
  lat = c(21.05939, 21.04305, 21.05977, 21.04336, 21.04434),
  lng = c(92.22692 ,92.23357 ,92.22733 ,92.23361 ,92.23478),
  X1 = c("sometimes", "always", "never", "often", "rarely")
)

以及以下传单情节:

pal1 <- c("#003366","#00ced1", "#ffd700","#ffa500","#ff1a1a")
color <- colorFactor(pal1, domain = mydata$X1)

leaflet(data = mydata) %>% 
  addTiles() %>% 
  addCircleMarkers(lng = mydata$lng, 
                   lat = mydata$lat,
                   color = ~color(mydata$X1)) %>%
  addLegend("topright",
            pal=color,
            values=mydata$X1,
            opacity = 1) 

enter image description here

如何操纵图例中标签的顺序,使它们:
总是,
经常,
有时,
很少,
从来没有

我尝试在

levels
中指定
colorFactor()
参数,并且也尝试在
values
中指定
addLegend
参数,但是,图例仍然采用项目的字母顺序。

r shiny r-leaflet
1个回答
2
投票

NVM 我想我已经明白了。 我首先指定排序顺序:

sort_val = factor(mydata$X1, levels = c('always',
                            'often',
                            'sometimes',
                            'rarely',
                            'never'))

然后我将

sort_val
传递给
values
 中的 
addlegend()

参数
  addLegend("topright",
            pal=color,
            values=sort_val,
            opacity = 1)  

我认为这是正确的,除非有人可以提出替代方案?

© www.soinside.com 2019 - 2024. All rights reserved.