如何在R Shiny Leaflet标记标签中实现内容换行?
Leaflet标记标签换行实现方案
默认情况下Leaflet的label会将内容视为纯文本,导致<br>换行标签无法生效。只需开启HTML解析支持即可解决:
修改步骤
- 在
addMarkers函数中添加labelOptions = labelOptions(html = TRUE)参数,允许Leaflet解析HTML格式的标签内容 - 保持用
<br>分隔两行文本
修改后完整代码
library(shiny) library(leaflet) # 示例数据 data <- data.frame( lat = c(9.145, 9.145), lng = c(40.4897, 40.4897), carbon_mean = c(2.34, 3.45), percent_increase = c(12.5, 20.3) ) # Shiny应用 ui <- fluidPage( leafletOutput("map") ) server <- function(input, output, session) { output$map <- renderLeaflet({ leaflet(data) %>% addTiles() %>% addMarkers( ~lng, ~lat, label = ~paste("Median Carbon Level:", round(carbon_mean, 2), "<br>", "Percent Increase from 2015:", round(percent_increase, 2), "%"), labelOptions = labelOptions(html = TRUE) # 启用HTML解析,让<br>生效 ) }) } shinyApp(ui, server)
替代方案
也可以用HTML()函数直接包裹拼接好的文本,效果一致:
label = ~HTML(paste("Median Carbon Level:", round(carbon_mean, 2), "<br>", "Percent Increase from 2015:", round(percent_increase, 2), "%"))
内容的提问来源于stack exchange,提问作者Quinn
相关产品推荐
相关产品推荐

