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

如何用单一颜色填充ggplot2地图中n非零的县并添加标记点

实现方法

当然可以实现这个需求,以下是修改后的R代码:

library("sf")
library("tigris")
library("ggplot2")

me <- counties("Maine", cb=TRUE, class="sf")
me$n <- rep(0:3, each = 4)

ggplot(me) +
  # 绘制县多边形,n非零的填充绿色,n=0的填充灰色
  geom_sf(aes(fill = n != 0), color = "white") +
  # 自定义填充颜色,关闭冗余图例
  scale_fill_manual(values = c("FALSE" = "gray90", "TRUE" = "green"), guide = "none") +
  # 在n非零的县中心添加红色标记点
  geom_sf(data = subset(me, n != 0), aes(geometry = st_centroid(geometry)), color = "red", size = 3) +
  theme_void()

关键改动说明:

  • 填充颜色设置:通过fill = n != 0将县分为「n=0」和「n≠0」两类,再用scale_fill_manual指定对应颜色,同时关闭图例避免多余信息。
  • 中心标记点:用subset(me, n != 0)筛选出n非零的县,通过st_centroid(geometry)直接计算这些县的几何中心,再用geom_sf绘制红色标记点,可通过size参数调整点的大小。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 16:39:56