4.2 专题地图:把属性表画成能读的故事 本节摘要:分类方法决定读者如何理解一列数值——等间隔保跨度、分位数保均衡、自然断点保聚类,同一数据在三种方法下呈现三个不同的故事。本节用脚本实测三种断点的差异并给出选用规则,随后处理专题表达的两类进阶问题:注记冲突处理与制图综合,最后给出常见专题图的类型速查。 同一列数字的三个故事 二十三个乡镇的人均耕地面积,最小 0.4 亩、最大 3.8 亩,大多数挤在 0.8 到 1.5 之间。现在要分五级上色,断点怎么定? 故事一(等间隔):0.4 到 3.8 均分五段,每段约 0.68 亩。结果三万多个乡镇落入最低两级,地图上一大片浅色,只有两三个"鹤立鸡群"的深色乡镇。故事讲成"个别极端乡镇 vs 其他所有人"。
本节摘要:分类方法决定读者如何理解一列数值——等间隔保跨度、分位数保均衡、自然断点保聚类,同一数据在三种方法下呈现三个不同的故事。本节用脚本实测三种断点的差异并给出选用规则,随后处理专题表达的两类进阶问题:注记冲突处理与制图综合,最后给出常见专题图的类型速查。
二十三个乡镇的人均耕地面积,最小 0.4 亩、最大 3.8 亩,大多数挤在 0.8 到 1.5 之间。现在要分五级上色,断点怎么定?
故事一(等间隔):0.4 到 3.8 均分五段,每段约 0.68 亩。结果三万多个乡镇落入最低两级,地图上一大片浅色,只有两三个"鹤立鸡群"的深色乡镇。故事讲成"个别极端乡镇 vs 其他所有人"。
故事二(分位数):每级乡镇数相同,各五分之一。地图五色均衡,层次分明。故事讲成"梯队排名"——但最低级与第二级可能只差 0.05 亩,差异被视觉放大了。
故事三(自然断点):算法寻找数据内部的天然分组间隙。若数据确实聚成几团,断点落在团与团之间,每一级内部相似、级间差异真实。故事讲成"客观类型区"。
三个故事都没造假,但强调的方向完全不同。选哪个,取决于你要回答什么问题:强调极端值用等间隔,强调排名梯队用分位数,强调客观分组用自然断点。做区域对比时再加一条铁律——多幅地图必须共用一套断点,否则跨图比较失去意义。

分类不是拍脑袋,ArcPy 可以直接复现几种方法的断点,先算后画、心里有数:
import arcpy, math fc = "K:/gisdata/county.gdb/townships" vals = sorted(r[0] for r in arcpy.da.SearchCursor(fc, ["人均耕地亩"]) if r[0] is not None) n = len(vals) # 一、等间隔:全距均分 5 段 vmin, vmax = vals[0], vals[-1] step = (vmax - vmin) / 5 equal = [round(vmin + i * step, 2) for i in range(6)] print("等间隔:", equal) # 输出: 等间隔: [0.4, 1.08, 1.76, 2.44, 3.12, 3.8] # 二、分位数:按排位等分 quantile = [round(vals[math.floor(n * i / 5) - 1], 2) for i in range(1, 5)] print("分位数:", [vals[0]] + quantile + [vals[-1]]) # 输出: 分位数: [0.4, 0.95, 1.18, 1.42, 2.2, 3.8] # 三、各断点下的分布计数,检查拥挤程度 for name, brks in [("等间隔", equal)]: counts = [sum(1 for v in vals if brks[i] <= v < brks[i+1]) for i in range(5)] print(name, "各级乡镇数:", counts) # 输出: 等间隔 各级乡镇数: [20, 1, 1, 0, 1] —— 最左级严重拥挤,印证前文判断
输出里 [20, 1, 1, 0, 1] 这一行就是决策依据:等间隔在此数据上不可用。脚本先跑、图后上,断点决策就有据可查,评审时也能坦然解释"为什么这么分级"。
断点定稿后,在符号系统里选对应方法并手动微调断点为脚本计算值,或使用标准差分级等预设,即可保证口径一致。
专题地图离不开注记——乡镇名、河流名、图斑编号。注记的麻烦在于文字互相打架:两个相邻乡镇名挤在一起,河流名要与河道走向一致,密密麻麻的小图斑编号无处安放。
处理梯度分三档。手工微调适合零星冲突:选中注记直接拖动,引线自动跟随。自动引擎适合大批量:将标注转注记要素后,启用 Maplex 标注引擎的冲突消解——权重低的注记自动让位、缩小或移出,河流名沿线的走向弯曲排布。规则约束是治本:在标注类别里设置缩放可见范围(小比例尺只显示乡镇名,放大到乡镇才显示村名),注记密度从源头受控。
操作步骤:把标注转注记并开启冲突消解 1. 完成标注配置:右键图层、标注、标注属性,设字段与字体 2. 转换:右键图层、将标注转换为注记,勾选转换为地图数据库注记并存放于当前地理数据库 3. 开启 Maplex:地图属性、标注引擎、勾选 Maplex 标注引擎 4. 配置避让:标注属性、位置、冲突解决,将重要图层权重设高,次要图层允许移位 5. 压线处理:河流注记设为沿要素弯曲放置,重复标注间隔按图上厘米设定 6. 人工收尾:对引擎仍解决不了的个别冲突手工拖动注记
转注记与留标注的区别值得记住:标注是动态的,随数据刷新自动更新但位置不可控;注记是静态要素,位置完全可控但要随数据变更手工维护。周期更新的成果图用标注,定稿交付的印刷图用注记,各得其所。
地图比例尺缩小,细节必须取舍,否则信息密度爆炸。这就是制图综合(Cartographic Generalization):小图斑合并或抽稀、弯曲河流平滑、密集道路抽稀、细长岛屿转为点表示。核心原则是保特征、舍细节——河流的蜿蜒性格要保,第十七道弯可以舍;小图斑的类别属性要保,面积可以并入邻斑。
ArcGIS 提供的工具箱覆盖主要综合操作:融合(消除图斑边界)、平滑线面(简化弯曲)、抽稀道路网(按等级保留)。第 7 章脚本化时这些操作可以组成"多尺度底图生产线"。容易犯的错是过度综合——平滑参数开太大,河流成了直线,读者认不出这是哪条河。综合程度以"目标比例尺下可辨认"为准,一档一档试。
| 专题图型 | 适用数据 | 关键表达 |
|---|---|---|
| 分级色彩图 | 面图层 + 排序字段 | 区域差异,最常用的政区统计图 |
| 比例符号图 | 点图层 + 数值字段 | 精确数值对比 |
| 点密度图 | 大量点事件 | 整体密度印象,不追求单点精确 |
| 热力图 | 连续插值结果 | 密度连续过渡的视觉印象 |
| 分区统计图表 | 面单元 + 多字段 | 结构构成(如产业结构饼图) |
| 双变量图 | 两个字段正交组合 | 稀缺但表达力强,需克制使用 |
⚠️ 常见坑:点密度图被当成精确数据读。点密度图的点只是统计示意,单个点不代表一个真实事件的位置,图例必须写明"每点代表约多少"。
下一节走进布局页面,把配好符号与注记的图层组装成可以打印上会的正式地图。