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

如何在R语言geom_sf绘制的地图上添加区域名称标签并调整样式

要在geom_sf绘制的地图上添加区域名称标注,直接使用ggplot2内置的geom_sf_text()(纯文本标签)或geom_sf_label()(带背景框的标签)图层即可,两个图层都会自动读取sf对象中每个多边形的质心作为默认标签位置,无需手动计算坐标。

调整后的完整绘图代码

# 选择2000年数据
de %>% 
  filter(year %in% c(2000)) %>%
  ggplot()+
  geom_sf(aes(fill = eap), color = NA)+
  # 新增的标签图层,可根据需求调整参数
  geom_sf_text(aes(label = nuts_name), 
               color = "white", # 字体颜色
               size = 2.5, # 字号
               family = "微软雅黑", # 字体
               fontface = 2, # 字重:2为加粗
               nudge_y = 5000) + # 标签整体向上偏移5000米(适配当前3035坐标系单位)
  scale_fill_viridis_b()+
  coord_sf(datum = NA)+
  theme_map()+
  theme(legend.position="right",
        plot.title = element_text(hjust = 0.5,color = "Gray40", size = 16, face = "bold"),
        plot.subtitle = element_text(color = "blue"),
        plot.caption = element_text(color = "Gray60"))+ 
  guides(fill = guide_legend(title = "单位:千人", title.position = "bottom", title.theme =element_text(size = 10, face = "bold",colour = "gray70",angle = 0)))

样式属性调整说明

  • 标签内容:通过aes(label = 变量名)指定,这里直接填写nuts_name即可
  • 字体样式调整参数:
    • size:调整字号,单位为mm
    • color:调整字体颜色,可填颜色名称或十六进制色值
    • family:调整字体,可填系统已安装的字体名称,如"宋体""PingFang SC"等
    • fontface:调整字重/风格,1为常规、2为加粗、3为斜体、4为加粗斜体
  • 位置调整参数:
    • nudge_x/nudge_y:按坐标系单位整体偏移标签位置,当前使用的EPSG3035坐标系单位为米,可根据显示效果灵活调整偏移量
    • 若存在标签重叠问题,可安装ggrepel包,将geom_sf_text替换为geom_sf_text_repel,函数会自动调整标签位置避免重叠,额外可搭配box.padding参数调整标签间距
  • 带背景框的标签配置:将geom_sf_text替换为geom_sf_label,可额外调整以下属性:
    • fill:标签背景颜色
    • alpha:背景透明度,取值范围0-1
    • label.padding:标签内边距,用法为unit(0.2, "mm")
    • label.r:标签圆角大小,用法为unit(0.1, "mm")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:15:04