从数据语义到视觉变量的映射工程——一套可复用的符号化判定流程、参数边界与工程实践清单
摘要
符号化是GIS制图链路中最容易被低估、也最容易返工的一环。很多制图问题并非出在数据质量或版面设计,而是出在“字段语义—视觉变量—分级参数”三者的错配:把连续量当类别量处理,或把类别量硬塞进色带,或分级数一路加到十级以上导致图例失去可读性。本文围绕一条主线展开——符号化的本质是数据测量尺度与视觉变量通道之间的匹配工程。文章系统梳理唯一值符号化、分级设色(Graduated Colors)、分级符号与比例符号的适用边界,给出“5-7级”这一经验阈值的理论依据与实证支撑,并延伸到双变量符号、多变量符号、色觉障碍友好配色、图例交互与自动化批量符号化等进阶议题。全文以可操作路径为导向,配合参数表、判定流程图与代码片段,力求让读者读完即可在ArcGIS Pro中落地。
目录
一、为什么符号化值得单独写一篇长文
在GIS项目里,符号化常被当作“最后一步的美化工作”。但实际做过项目的人都知道,符号化往往是需求变更最频繁、评审意见最集中、返工成本最高的环节。一份专题地图被退回,十有八九不是因为数据算错了,而是因为“看不出来想表达什么”。
这里有一个根本性的认知问题:符号化不是审美问题,而是信息编码问题。地图是一种视觉传输通道,符号系统是把数据属性映射到视觉变量的编码器。编码器设计得好,读者能在几秒内抓住空间格局;设计得差,读者需要反复对照图例,甚至产生误读。制图学中经典的“视觉变量”理论(Bertin, 1967;MacEachren, 1995)指出,位置、大小、形状、色相、明度、饱和度、纹理、方向等视觉变量各有其感知特性,而不同的数据测量尺度(名义、有序、间隔、比率)只能与特定变量匹配。本文评述:这一理论虽然诞生于纸质地图时代,但在屏幕地图、交互地图甚至三维场景中依然成立,只是变量的“可用通道”变多了,匹配规则变得更复杂。
国内方面,王家耀院士团队在《地图学原理与方法》等著作中反复强调符号系统与地理语义的一致性;国外方面,Cynthia Brewer 主持的 ColorBrewer 项目(Brewer et al., 2003)为分级设色提供了经过感知实验验证的色带库,至今仍是ArcGIS默认色带的重要来源。近三年,随着Web GIS与自动化制图的普及,符号化的研究重心正在从“单幅地图怎么配色”转向“批量地图如何保持一致性”“色觉障碍用户如何获得等效信息”等工程问题(见参考文献[12][23][41])。
本文要确立的分析主线是:符号化 = 数据测量尺度 × 视觉变量通道 × 分级参数 的三元匹配。三个板斧分别对应三个高频场景:类别量用唯一值、连续量用分级设色、分级数量控制在5-7级。这条主线不是拍脑袋的经验,而是有感知心理学与制图规范双重支撑的工程结论。下面逐层展开。
拓展阅读:Esri官方《Symbols and styles》文档对符号系统有完整分类说明,可作为操作手册常备参考:https://pro.arcgis.com/en/pro-app/latest/help/mapping/layer-properties/symbols-and-styles.htm
二、第一板斧:分类数据用唯一值
2.1 什么是“分类数据”
分类数据在统计测量尺度上属于名义尺度(Nominal)或有序尺度(Ordinal)。名义尺度的取值之间没有大小关系,只有“是否相同”的区别,比如土地利用类型(耕地、林地、草地、水域、建设用地)、行政区名称、土壤类型、道路等级(高速、国道、省道、县道——这里其实是有序的)。有序尺度的取值有顺序但间隔不一定相等,比如适宜性等级(高、中、低)。
关键判断标准只有一条:这个字段的取值能不能做加减乘除?不能,就是分类数据;能,就是数值数据。土地利用代码“01、02、03”看起来是数字,但01+02没有任何意义,所以它是分类数据,不是数值数据。这是新手最容易踩的坑之一。
2.2 唯一值符号化的操作路径
在ArcGIS Pro中,右键图层 → Symbology → Primary symbology 选择 Unique Values,然后选择分类字段。如果是多个字段组合分类,可以切换到 Unique Values, Many Fields,最多支持三个字段组合。
操作要点:
- 字段选择:优先选择已经编码好的短字段,避免直接用超长文本字段,否则图例会爆炸。
- 颜色分配:类别数≤7时,可以用定性色带(Qualitative)手动微调;类别数>12时,建议改用“类别 + 其他”的归并策略,或改用图表符号。
- 图例排序:默认按字段值排序,但土地利用等有习惯顺序的类别,应手动调整图例顺序,符合读者认知习惯。
- “所有其他值”处理:ArcGIS Pro提供
Add all other values选项,把未列出的值归为一类,避免遗漏。
2.3 类别太多怎么办:归并策略
实际项目中,分类字段动辄几十个取值。比如某市用地分类按国标二级类有几十类,直接唯一值符号化必然导致图例占满半张图。常见归并策略有三种:
本文评述:归并的本质是“信息降维”。地图的信息承载量是有限的,把所有类别都画上去,等于没有重点。工程上更稳妥的做法是先做一次类别频数统计,把占比低于某个阈值(比如1%)的类别先归并,再决定符号方案。这一步可以用“汇总统计”工具或Python快速完成。
三、第二板斧:数值数据用分级设色
3.1 数值数据的两种表达:颜色还是大小
数值数据(间隔尺度或比率尺度)可以用两种主要视觉变量表达:颜色(色相/明度/饱和度)和大小(符号尺寸)。面状要素通常用颜色,点状要素通常用大小,线状要素通常用宽度。这就是分级设色(Graduated Colors)、分级符号(Graduated Symbols)和比例符号(Proportional Symbols)的分工。
这里有一个容易被忽略的感知差异:人对颜色差异的分辨能力远低于对长度/面积差异的分辨能力。因此,当需要精确比较数值大小时,比例符号往往优于分级设色;当需要表达空间格局和整体趋势时,分级设色的优势更明显。笔者认为,选择哪种符号,取决于地图要回答的问题是“哪里多哪里少”还是“具体多多少”。前者用颜色,后者用大小。
3.2 分级设色的操作路径
ArcGIS Pro中,Symbology → Primary symbology → Graduated Colors,选择数值字段,设置分级方法(Classification Method)和分级数(Classes),再选择色带(Color scheme)。
三个核心参数:
- 分级方法:决定断点怎么切,直接影响地图形态。
- 分级数:决定图例有多少档,影响可读性。
- 色带:决定颜色怎么过渡,影响感知准确性。
这三个参数中,分级方法最容易被忽视,但影响最大。同一份数据,用等间隔和自然断点,出来的地图可能完全不一样。下一节专门展开。
3.3 分级设色 vs 拉伸(Stretch)
ArcGIS还提供“拉伸”渲染方式,把连续数值直接映射到连续色带上,不分级。拉伸适合表达连续渐变现象,比如高程、温度、降水。但拉伸的缺点是图例难以精确对应,读者无法从颜色反推具体数值。本文评述:拉伸适合“看趋势”的场景,分级设色适合“看等级”的场景。如果地图需要被引用、被量算,分级设色更稳妥。
四、第三板斧:为什么5-7级是甜点区
4.1 感知上限:人眼能分辨多少种颜色
“5-7级”这个经验值不是随便说的。它的理论依据来自两个方面:一是人眼对颜色类别数量的分辨能力,二是图例的认知负荷。
在感知心理学中,有一个被广泛引用的结论:对于需要精确识别的分类任务,人眼能可靠区分的颜色类别大约在5-8种之间(Healey, 1996;Ware, 2012)。超过这个数量,相邻类别的颜色开始变得难以区分,读者需要反复对照图例,认知负荷急剧上升。这就是为什么大多数经过感知验证的定性色带(如ColorBrewer的Set1、Paired)最多提供8-12色,而推荐使用量通常在5-7色。
对于顺序色带(Sequential),情况略有不同。顺序色带利用明度变化,理论上可以承载更多级别,因为明度是单调变化的,读者可以按顺序排列。但即便如此,超过7级后,相邻级别的明度差异也会变得难以分辨。Brewer等(1997)的感知实验表明,顺序色带在5-7级时,读者对顺序的判断准确率最高。
4.2 图例负荷:每多一级,读者多一次对照
从信息论角度看,每增加一个分级,图例就多一个条目,读者在阅读地图时需要多一次“颜色→数值”的映射。假设读者需要判断10个区域的等级,5级时最多需要5次映射,10级时最多需要10次。更重要的是,分级越多,相邻级别的边界越模糊,误判概率越高。
笔者在实际项目中的经验是:当分级数超过7级时,评审意见中“图例看不清”“颜色太接近”的出现频率显著上升。这不是审美问题,而是感知负荷问题。
4.3 什么时候可以突破5-7级
5-7级是通用建议,不是铁律。以下情况可以适当增加级别:
- 数据分布高度偏态:需要用更多级别来区分尾部细节,但此时应考虑先做数据变换(对数、平方根)。
- 地图尺寸大、阅读距离近:大幅面印刷地图或屏幕交互地图,可以承载更多级别。
- 配合交互查询:Web地图中,读者可以点击查看具体数值,颜色只负责引导注意力,此时可以适当增加级别。
- 使用连续色带 + 分级:视觉上仍是连续过渡,但图例给出关键断点,兼顾细节与可读性。
本文评述:5-7级的本质是“感知分辨率”与“信息分辨率”的平衡点。工程上更实用的做法是:先按5-7级出图,如果发现某些关键区域被“平均”掉了,再考虑增加级别或改用其他符号方案。不要一上来就设10级,那是给自己挖坑。
五、分级方法全解:等间隔、分位数、自然断点、几何间隔与标准差
5.1 五种分级方法的原理与适用场景
自然断点(Jenks)是ArcGIS默认方法,也是争议最大的方法。它的优点是组内差异小、组间差异大,视觉效果好;缺点是断点依赖于算法,不同软件、不同版本算出的断点可能略有差异,且断点值往往不是整数,图例不好看。本文评述:自然断点适合探索性分析,但如果地图需要被引用或比较,建议改用等间隔或自定义断点,保证可复现性。
5.2 如何选择分级方法:一个判定流程
1. 先看数据分布(直方图) ├─ 近似正态 → 等间隔 或 标准差 ├─ 均匀分布 → 等间隔 ├─ 右偏(长尾)→ 几何间隔 或 分位数 └─ 双峰/多峰 → 自然断点,或先分层再分别符号化 2. 再看制图目的 ├─ 突出排名 → 分位数 ├─ 突出绝对差异 → 等间隔 ├─ 突出自然分组 → 自然断点 └─ 突出偏离均值 → 标准差 3. 最后看可复现性要求 ├─ 需要跨版本一致 → 自定义断点 └─ 仅内部探索 → 自然断点
5.3 自定义断点:工程上最稳妥的选择
在正式出图中,笔者推荐使用自定义断点(Manual Interval)。做法是:先用自然断点或分位数探索数据,找到有意义的断点值,然后手动输入。这样做的好处是:断点可控、图例好看、跨版本一致、便于向非技术读者解释。
例如,做人口密度图时,可以按规划习惯设定断点:<100人/km²、100-500、500-1000、1000-2000、>2000。这些断点有明确的政策含义,比算法生成的断点更容易被接受。
六、色带选择:顺序、发散、定性三类色带的工程用法
6.1 三类色带的本质区别
顺序色带的关键是明度单调变化。人眼对明度的感知是线性的,所以顺序色带能准确传达“多少”的信息。发散色带的关键是中间有一个“中性点”(通常是白色或浅灰),两端色相对称,适合表达“偏离中心”的数据,比如增长率、温差、盈亏。定性色带的关键是色相差异大、明度相近,避免读者误以为有顺序。
本文评述:很多制图翻车案例,根源就是色带类型用错。比如用发散色带表达人口密度(没有中心值),读者会误以为中间色是“正常值”;用定性色带表达收入等级(有序数据),读者无法判断高低。色带类型必须与数据测量尺度匹配,这是硬约束。
6.2 ColorBrewer与Viridis:两套值得信赖的色带库
ColorBrewer(Brewer et al., 2003)是制图界最经典的色带库,其色带经过感知实验验证,保证明度单调、色觉障碍友好、打印友好。ArcGIS Pro内置了ColorBrewer色带,可以直接选用。
Viridis(Smith & van der Walt, 2015)是近年流行的色带,最初为Matplotlib设计,特点是感知均匀、色觉障碍友好、灰度打印可读。ArcGIS Pro 2.6以后也内置了Viridis系列色带。本文评述:Viridis在屏幕地图上表现优秀,但在印刷地图上,其高饱和度端可能过于抢眼,需要根据输出介质调整。
拓展资源:ColorBrewer在线工具 http://colorbrewer2.org ;Viridis色带说明 https://cran.r-project.org/web/packages/viridis/vignettes/intro-to-viridis.html
6.3 色带反转与自定义
ArcGIS Pro中,右键色带可以反转(Invert)。反转的时机:当数据的高值应该用深色、低值用浅色时(默认通常是低值深、高值浅,需要根据习惯调整)。自定义色带可以通过“Format Color Scheme”创建,建议基于ColorBrewer色带微调,不要从零开始调色。
七、进阶:双变量与多变量符号化
7.1 双变量符号化:色相×明度
双变量地图(Bivariate Map)用两个视觉变量同时表达两个属性。最常见的是色相×明度:色相表示一个变量(如收入等级),明度表示另一个变量(如教育水平)。ArcGIS Pro从2.6版本开始内置了双变量符号化(Bivariate Colors),支持3×3或4×4网格。
双变量地图的优势是能揭示两个变量的空间关联,比如“高收入+高教育”区域在哪里。缺点是图例复杂,读者需要一定的学习成本。本文评述:双变量地图适合探索性分析和专业读者,不适合大众传播。使用时建议配合散点图或表格,帮助读者理解。
7.2 多变量符号化:颜色+大小+形状
多变量符号化用多个视觉变量表达多个属性。比如点符号:大小表示人口,颜色表示收入,形状表示城市等级。这种符号化信息密度高,但可读性下降快。经验法则是:同时表达的变量不超过3个,且每个变量对应一个独立的视觉通道。
ArcGIS Pro中可以通过“Multiple Attributes”符号化实现,但更灵活的方式是用Arcade表达式动态控制符号属性。这部分在第九节展开。
八、无障碍与色觉障碍友好设计
8.1 色觉障碍的流行病学数据
色觉障碍(Color Vision Deficiency, CVD)是最常见的遗传性感觉障碍之一。据Birch(2012)的综述,红绿色盲在男性中的患病率约为8%,女性约为0.5%;蓝黄色盲罕见,患病率低于0.01%。这意味着,一份面向公众的地图,大约每12个男性读者中就有1个无法准确区分红绿色。
本文评述:色觉障碍友好设计不是“加分项”,而是“及格线”。尤其是面向政府决策、公共服务的地图,必须考虑CVD用户。
8.2 色觉障碍友好的配色策略
- 避免红绿对比:红绿色盲无法区分红绿,改用蓝橙、蓝红、紫黄等对比。
- 明度差异优先:即使色相无法区分,明度差异仍可传达顺序信息。
- 使用ColorBrewer的CVD安全色带:ColorBrewer标注了“colorblind safe”的色带,如PuOr、BrBG、RdBu。
- 增加纹理或形状编码:在颜色之外,用纹理、形状、标签辅助区分。
- 提供数值标注:关键区域直接标注数值,减少对颜色的依赖。
8.3 灰度打印测试
一个简单有效的检验方法:把地图转成灰度,看是否仍能区分等级。如果灰度下无法区分,说明配色过度依赖色相,需要调整明度。ArcGIS Pro中可以用“Grayscale”色带模拟,或导出后转灰度查看。
九、工程化:批量符号化、图层文件与ArcPy实践
9.1 图层文件(.lyrx)的复用
ArcGIS Pro中,符号化配置可以保存为图层文件(.lyrx),然后通过“Apply Symbology From Layer”工具批量应用到其他图层。这是保证多幅地图符号一致性的最实用方法。
操作路径:右键图层 → Sharing → Save As Layer File,保存为.lyrx。然后对目标图层使用Analysis → Tools → Apply Symbology From Layer。
9.2 ArcPy批量符号化示例
以下代码演示如何用ArcPy批量设置分级设色。注意:ArcPy对符号化的支持有限,复杂符号化建议用ArcGIS API for Python(arcgis包)或CIM(Cartographic Information Model)。
# 示例:批量应用图层文件(模拟数据,仅演示流程)
import arcpy
aprx = arcpy.mp.ArcGISProject(r"C:\project\demo.aprx")
map_obj = aprx.listMaps("Map")[0]
symbology_layer = r"C:\project\styles\graduated_colors.lyrx"
for lyr in map_obj.listLayers():
if lyr.isFeatureLayer and lyr.name.startswith("pop_"):
arcpy.management.ApplySymbologyFromLayer(
in_layer=lyr,
in_symbology_layer=symbology_layer,
update_symbology="MAIN_LAYER"
)
aprx.save()
本文评述:ArcPy的符号化能力确实有限,但它胜在稳定、可脚本化。对于需要频繁更新的地图产品,建议把符号化配置固化为.lyrx,用ArcPy批量应用,而不是每次手动调。
9.3 Arcade表达式动态符号化
ArcGIS Pro支持用Arcade表达式动态控制符号属性。比如,根据两个字段的组合动态返回颜色:
// Arcade示例:根据人口密度返回颜色 var density = $feature.POP_DENSITY; if (density < 100) return "#f7f4ff"; if (density < 500) return "#d8ccff"; if (density < 1000) return "#b49cff"; if (density < 2000) return "#8b5cf6"; return "#5b21b6";
Arcade的优势是灵活,可以根据多个字段、甚至几何属性动态决定符号。缺点是性能开销较大,大数据量时需谨慎。
十、常见翻车现场与排查清单
十一、前沿:从规则驱动到数据驱动符号化
11.1 自动分级与智能配色
近三年,随着机器学习在制图领域的渗透,出现了一批“自动符号化”研究。例如,有研究尝试用聚类算法自动识别数据的自然分组,替代传统的Jenks自然断点(参考文献[28][35])。也有研究用深度学习模型预测地图配色方案,目标是让机器生成的配色接近专业制图师的水平(参考文献[42])。
本文评述:这些研究有价值,但短期内难以替代人工判断。原因是符号化不仅是数学问题,还涉及制图目的、读者背景、文化习惯等难以量化的因素。更现实的方向是“人机协作”:机器给出候选方案,制图师做最终决策。
11.2 交互式符号化与Web地图
在Web GIS中,符号化正在从静态配置转向动态交互。读者可以切换分级方法、调整分级数、悬停查看数值。这在一定程度上缓解了“分级数两难”的问题:默认给5-7级,读者需要细节时可以交互展开。
ArcGIS Experience Builder和Mapbox GL JS都支持这类交互。本文评述:交互式符号化是未来趋势,但它对前端性能和数据组织提出了更高要求。不是所有项目都需要,但值得关注。
11.3 三维场景中的符号化
在三维场景中,符号化多了一个维度:高度/拉伸。ArcGIS Pro支持用数值字段控制要素的拉伸高度,配合颜色表达第二个变量。这实际上是一种三维双变量符号化。需要注意的是,三维场景中的遮挡和透视会严重影响颜色感知,配色需要比二维更保守。
十二、结语:三板斧之外
回到开头的主线:符号化是数据测量尺度与视觉变量通道之间的匹配工程。三板斧——分类用唯一值、数值用分级设色、5-7级为界——是这条主线上最高频、最实用的三个决策点。但它们不是全部。
真正成熟的符号化能力,体现在三个方面:一是能快速判断字段的测量尺度,二是能根据制图目的选择合适的分级方法和色带,三是能站在读者角度检验可读性。这三点,工具帮不了你,只能靠经验和思考。
最后给一个可操作的建议:每次出图前,花5分钟做三件事——看直方图、数分级数、转灰度看一遍。这三件事能避免80%的符号化翻车。
主要参考文献
- Bertin, J. (1967). Sémiologie graphique: Les diagrammes, les réseaux, les cartes. Mouton. (视觉变量理论奠基之作)
- MacEachren, A. M. (1995). How Maps Work: Representation, Visualization, and Design. Guilford Press.
- Brewer, C. A., MacEachren, A. M., Pickle, L. W., & Herrmann, D. (1997). Mapping mortality: Evaluating color schemes for choropleth maps. Annals of the Association of American Geographers, 87(3), 411-438.
- Brewer, C. A., Hatchard, G. W., & Harrower, M. A. (2003). ColorBrewer in print: A catalog of color schemes for maps. Cartography and Geographic Information Science, 30(1), 5-32.
- Healey, C. G. (1996). Choosing effective colours for data visualization. Proceedings of IEEE Visualization '96, 263-270.
- Ware, C. (2012). Information Visualization: Perception for Design (3rd ed.). Morgan Kaufmann.
- Jenks, G. F. (1967). The data model concept in statistical mapping. International Yearbook of Cartography, 7, 186-190.
- Smith, N., & van der Walt, S. (2015). A new default colormap for Matplotlib. Proceedings of SciPy 2015.
- 王家耀, 孙群, 王光霞. (2011). 《地图学原理与方法》. 科学出版社.
- Birch, J. (2012). Worldwide prevalence of red-green color deficiency. Journal of the Optical Society of America A, 29(3), 313-320.
注:本文涉及的数据集均为公开数据或模拟数据。模拟数据的预处理细节:以某市人口密度模拟数据为例,原始数据为格网人口栅格(100m分辨率),预处理包括:投影转换为CGCS2000高斯克吕格投影,剔除水域和公园绿地格网,按行政区汇总后计算密度,最后用自然断点法探索分布并确定自定义断点。模拟数据仅用于演示符号化流程,不代表真实人口分布。
本文内容仅为作者学习、思考、经验、笔记的总结,仅供技术交流与参考。文中观点仅代表笔者个人思辨,不构成任何学术建议、商业建议或专业建议。所有数据来源已标注,引用时请以原始文献为准。
内容仅供学习参考。如需引用,请以原始文献为准。 全文约12800字 | 参考文献62篇(主要9篇)

