You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Leaflet气泡地图图例自定义:移除默认Legend图例,保留Population图例

解决方法

默认图例由geojsonMap()函数自动生成,只需在调用该函数时添加legend = FALSE参数,即可关闭默认图例,仅保留你手动添加的「Population」图例。

修改后的完整代码如下:

library(leaflet)
library(leafletCN)
library(plyr)
library(dplyr) # 显式加载dplyr,避免管道符%>%运行报错

dat = data.frame(name = regionNames("china"),
                 value = 1)

data=data.frame(city=c("NJ","AH","BJ","CD","CQ"),
                 count=c(15,32,45,52,24),
                 lat=c(32,31,39,29,29),
                 long=c(118,117,116,111,106))

data2 <- data %>%
  arrange(count) %>%
  mutate(name=factor(city, unique(city))) %>%
  mutate(mytext=paste(
    "City: ", city, "\n", 
    "Population: ", count, sep="")
  )

mybins <- seq(0, 60, by=10)
mypalette <- colorBin(palette="inferno", domain=data2$count, na.color="transparent", bins=mybins)

# 关键修改:添加legend = FALSE关闭默认图例
geojsonMap(dat,"china", legend = FALSE) %>%
  addCircleMarkers(data=data2,~long, ~lat, 
                   fillColor = ~mypalette(count), popup = ~mytext,
                   fillOpacity = 0.7, color="white", radius=~(count/2), stroke=FALSE)%>%
  addLegend(data=data2,pal=mypalette, values=~count, opacity=0.9, title = "Population", position = "bottomright" )

补充说明

  • 原代码使用的%>%管道符依赖dplyr包,显式加载该包可避免运行时出现找不到管道符的报错;
  • geojsonMap函数的legend参数默认值为TRUE,设置为FALSE后会自动取消对应dat$value的默认图例。

内容的提问来源于stack exchange,提问作者Robin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 19:03:11