使用闪亮,您可以执行以下操作:
library(shiny)
library(leaflet)
ui <- fluidPage(
leafletOutput('map'),
# Add custom CSS & Javascript;
tags$style(".leaflet-control-layers-expanded{color: red}")
)
server <- function(input, output, session) {
output$map <- renderLeaflet({
leaflet(quakes) %>%
addTiles() %>%
addMarkers() %>%
addLayersControl(
baseGroups = c("OSM (default)", "Toner", "Toner Lite"),
overlayGroups = c("Quakes", "Outline"),
options = layersControlOptions(collapsed = FALSE)
)
})
}
shinyApp(ui, server)
关键行是tags$style(".leaflet-control-layers-expanded{color: red}")。根据需要使用颜色名称、十六进制颜色代码或 RGB 颜色代码编辑红色。
更新
要在 RStudio 查看器窗格中显示(即没有闪亮),您可以执行以下操作:
library(leaflet)
library(htmltools)
m <- leaflet(quakes) %>%
addTiles() %>%
addMarkers() %>%
addLayersControl(
baseGroups = c("OSM (default)", "Toner", "Toner Lite"),
overlayGroups = c("Quakes", "Outline"),
options = layersControlOptions(collapsed = FALSE)
)
browsable(
tagList(
tags$style(".leaflet-control-layers-expanded{color: red}"),
m
)
)
改编自here。
进一步更新
根据需要不同颜色:
顺便说一句,form.leaflet-control-layers-list 是.leaflet-control-layers-expanded 的替代品
其中.leaflet-control-layers-base 和.leaflet-control-layers-overlays 之间存在如下拆分:
library(shiny)
library(leaflet)
ui <- fluidPage(
leafletOutput('map'),
# Add custom CSS & Javascript;
tags$style(".leaflet-control-layers-base{color: red}",
".leaflet-control-layers-overlays{color: blue}")
)
server <- function(input, output, session) {
output$map <- renderLeaflet({
leaflet(quakes) %>%
addTiles() %>%
addMarkers() %>%
addLayersControl(
baseGroups = c("OSM (default)", "Toner", "Toner Lite"),
overlayGroups = c("Quakes", "Outline"),
options = layersControlOptions(collapsed = FALSE)
)
})
}
shinyApp(ui, server)
不幸的是,我还没有找到如何通过特定线条着色,因为 css 似乎没有区别。