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

如何为R语言生成的地图配置更多颜色解决聚类标识重复问题

你当前出现不同聚类同色的问题,根源是仅定义了4种固定颜色,配合%%4取模的赋值逻辑,会让聚类编号大于4的类别自动复用前面的颜色,自然不符合预期。要适配10个以上聚类的场景,可以按以下方式修改颜色分配逻辑:

方案1:使用R内置调色板(无需额外安装依赖)

直接根据实际聚类数量动态生成对应数量的高区分度颜色,无需用取模逻辑复用颜色:

library(googleway)
library(geosphere)

set_key( "API_KEY" )

swf1<-structure(list(Properties = c(1,2,3,4,5,6), Lat = c(-24.781624,-24.775017,-24.769196,-24.761741,-24.752019,-24.748008), 
                     Lon = c(-49.937369,-49.950576,-49.927608,-49.92762,-49.920608,-49.927707)), 
                    class="data.frame",row.names = c(NA, -6L))

# 聚类逻辑不变
d<-as.dist(distm(swf1[,2:1]))
fit.average<-hclust(d,method="average") 
clusters<-cutree(fit.average, 5) 
swf1$cluster<-clusters

# 以下是修改的颜色分配逻辑
n_clusters <- max(swf1$cluster)
# hcl.colors是R4.0+版本自带的调色板,可通过palette参数更换配色风格
marker_colors <- hcl.colors(n = n_clusters, palette = "Dark 2")
# 直接按聚类编号匹配颜色,无需取模
swf1$color <- marker_colors[swf1$cluster]

google_map() %>%
  add_markers(
    data = swf1, lon = "Lon", lat = "Lat", colour="color")

方案2:使用扩展调色板(适配更多聚类数量)

如果聚类数量超过10种,需要更高区分度的配色,可以使用RColorBrewer包的扩展调色板:

# 首次使用先安装包
# install.packages("RColorBrewer")
library(RColorBrewer)
library(googleway)
library(geosphere)

set_key( "API_KEY" )

swf1<-structure(list(Properties = c(1,2,3,4,5,6), Lat = c(-24.781624,-24.775017,-24.769196,-24.761741,-24.752019,-24.748008), 
                     Lon = c(-49.937369,-49.950576,-49.927608,-49.92762,-49.920608,-49.927707)), 
                    class="data.frame",row.names = c(NA, -6L))

# 聚类逻辑不变
d<-as.dist(distm(swf1[,2:1]))
fit.average<-hclust(d,method="average") 
clusters<-cutree(fit.average, 5) 
swf1$cluster<-clusters

# 颜色分配逻辑
n_clusters <- max(swf1$cluster)
# colorRampPalette可以将有限的基础调色板扩展为任意数量的渐变色
marker_colors <- colorRampPalette(brewer.pal(12, "Paired"))(n_clusters)
swf1$color <- marker_colors[swf1$cluster]

google_map() %>%
  add_markers(
    data = swf1, lon = "Lon", lat = "Lat", colour="color")

原问题效果示例:
地图聚类颜色示例

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 15:18:04