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

如何移除R语言tmap地图图例中的Missing缺失值标签?

解决tmap地图图例中缺失值标签无法移除的问题

核心解决方法

虽然你已经在tm_layout里设置了legend.na.show = FALSE,但tmap的缺失值图例显示逻辑中,图层级参数的优先级高于全局布局参数。你需要在绘制多边形的tm_polygons函数中直接添加na.show = FALSE,从图层层面关闭缺失值的图例项。

修改后的完整代码

map = data_joined_with_shape_file %>%
  select(NAME_2, Anaemia, geometry) %>% 
  tm_shape()+
  tm_polygons("Anaemia", breaks = c(0, 25, 30, 40, 50, 60),
              palette = c("white","#f7fbff", "#9ecae1", "#6baed6", "#4292c6", "#08519c"),
              na.show = FALSE)  # 新增该行,关闭当前图层的缺失值显示

Overall = map + 
  tm_shape(data_joined_with_shape_file %>% filter(Anaemia > 20))+
  tm_text("NAME_2", size = 0.95,
          fontfamily = "serif", just = "center", fontface = "bold")+
  tm_layout(legend.position = c("right", "top"),
            frame = FALSE,
            legend.text.size = 1.3,
            legend.title.size = 2,
            legend.bg.color = NA,
            legend.bg.alpha = 0,
            legend.na.show = FALSE,
            legend.title.fontface = "bold",
            legend.text.fontfamily = "serif",
            legend.title.fontfamily = "serif",
            legend.frame = FALSE)

额外验证步骤

如果修改后仍有问题,可执行以下操作确认数据状态:

  • 运行sum(is.na(data_joined_with_shape_file$Anaemia)),确认结果为0,确保数据确实无缺失值
  • 运行table(data_joined_with_shape_file$Anaemia, useNA = "always"),检查是否存在字符型的"NA"字符串等隐含缺失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 20:44:58