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

ggplot结合ggmap中stat_density2d的密度多边形着色需求

给ggmap中的密度多边形添加着色效果

嗨,这事儿很容易解决!你当前的代码已经能生成密度多边形了,只需要给stat_density2d加上填充颜色的映射,再调整下细节就能实现你要的着色效果。

直接用下面修改后的代码就行:

library(ggmap)
datParts = read.csv("smili_parts.csv", header=T, stringsAsFactors = TRUE)
SEmap = get_map(location = "thailand", zoom=3)

ggmap(SEmap) +
  # 保留原来的密度线
  geom_density2d(data=datParts, aes(x=q3b_longitude, y=q3b_latitude), size=0.3) +
  # 修改stat_density2d,添加填充和透明度
  stat_density2d(
    data=datParts, 
    aes(x=q3b_longitude, y=q3b_latitude, fill = ..level..),  # 将密度等级映射为填充色
    size=0.01, 
    bins=16, 
    geom="polygon",
    alpha=0.5  # 设置透明度,避免完全遮挡底图
  ) +
  # 自定义渐变配色,从低密度到高密度的颜色过渡
  scale_fill_gradient(low = "lightblue", high = "darkred")

关键改动说明:

  • fill = ..level..:这里的..level..是stat_density2d生成的内部变量,代表密度的层级,把它映射到填充色后,不同密度的多边形会自动呈现不同颜色
  • alpha=0.5:适当降低透明度,让底图和密度多边形都能清晰显示,你可以根据需求调整这个数值(0完全透明,1完全不透明)
  • scale_fill_gradient:用来定义颜色渐变的方向,你可以替换成任何你喜欢的颜色组合,比如low = "green", high = "orange"

如果想要更专业、色盲友好的配色,推荐用viridis色系替换scale_fill_gradient:

scale_fill_viridis_c(option = "magma")

这样生成的图既美观又能保证信息的可读性~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:41:15