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

为tm_symbols设置累计冲突值分级(breaks)失败求助

问题解决:tmap中为累计冲突符号设置分级断点

问题分析

从附图可见,当前符号大小的图例显示为连续数值,而非你预期的分级区间,代码无法正常运行的核心原因是**tm_symbols中针对size变量的分级参数用错了**:breaks是给颜色变量(col参数)设置分级的,控制size变量分级的参数是size.breaks。

修正后的代码

# 可选:自定义图例区间标签,让展示更清晰
size_labels <- c("<1000", "1000-2000", "2000-3000", "3000-4000", ">4000")

tm_shape(test) + 
  tm_polygons(col="vcidrought_type",
              pal =c("#BCE395","#21908CFF", "#3B528BFF", "#440154FF", "#000004FF"),
              levels = labels,
              title="Drought types") +
  tm_layout(main.title = "VCI drought type in Sub-Saharan Africa 1997-2010", 
            main.title.position = "center", frame= FALSE) +
  tm_shape(shp_union) +
  tm_symbols(col = "red", border.col = "black", size = "total_conflicts",
             size.breaks = c(-Inf, seq(1000, 4000, by = 1000), Inf),
             size.labels = size_labels,  # 启用自定义标签
             title.size = "Cumulated conflicts")

关键说明

  • 替换breaks为size.breaks,这是tmap中专门控制size变量分级断点的参数;
  • 若不需要自定义标签,可删除size.labels行,tmap会自动基于断点生成区间标签;
  • 确保size.breaks的断点数量和size.labels的标签数量一致(这里都是5个区间对应5个标签)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 16:20:48