如何移除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
相关产品推荐
相关产品推荐

