干GIS这行,最常被同事喊过去帮忙的一个活就是调图例。ArcGIS里出张图不难,难的是把图例做得干净、专业、拿得出手。很多新手刚接触ArcGIS制图时,图层符号一拉,图例一插,看起来像那么回事,但打印出来或者导成图片后,要么图例名称不对,要么文字挤成一团,要么符号大小和图上对不上,要么图例项多得能占半张A4纸。这篇文章我就把自己这些年用ArcGIS设置图例的完整思路、操作步骤和踩坑记录整理一遍,从图例向导到属性面板,从改标题到换行,从调整符号到多图层合并,一次讲透。适合正在做专题图、毕业论文图件、项目汇报图件的朋友参考,也适合刚接触ArcGIS制图、被图例折腾到怀疑人生的新手直接照着操作。
1. 图例设计,先想清楚再动手
1.1 图例不是“后补的装饰”
很多人的习惯是把图全部做完,符号也定好了,最后才想起插一个图例。这样做不是不行,但容易让你返工。图例本质上是地图的“说明书”,它要把图上每种符号、颜色、尺寸对应的含义解释清楚。如果你在制图一开始就把图例的位置、大小、包含哪些图层、用哪种排列方式定下来,后面调图会顺手很多。
我个人的习惯是:打开ArcMap或ArcGIS Pro之后,先建好数据框,把主要图层拖进去,粗略配好符号,然后直接切到布局视图,插一个占位图例。后续不管怎么改图层符号,图例跟着自动更新,这样能避免“图做完了,图例对不上”的尴尬。记住一个核心原则:图例是跟着图层符号走的,不是手工画出来的。
1.2 动手之前要定的四个问题
插图例之前,先问自己四个问题,每个问题都会直接影响最终效果:
第一个问题是“图例给谁看”。如果是给评审专家看,图例名称要规范,比如“地类代码”“高程分级”,不要用图层默认的名字,更不能出现“图层1副本”这种字样。如果只是自己项目内部看,要求可以适当放宽,但至少图例不能是错的。
第二个问题是“图上到底有几类信息”。一张图里可能既有面状地类、又有线状道路、还有点状居民地,这些图层可能都需要进图例。但有些辅助图层,比如指北针、比例尺、图框、背景底图,就不应该出现在图例里。需要进图例的图层提前理清楚,省得在属性面板里一个一个取消勾选。
第三个问题是“符号分级还是单一符号”。如果是单一符号,图例一项就够;如果是分级着色或者分类符号,图例项会很多,这时要考虑是全部显示,还是只显示图面上能看到的部分。
第四个问题是“图例放在哪”。图例的位置要服从整体版面,一般放在图的左下角或右下角,空白多的地方优先,不要让图例盖住主要内容区。ArcMap里图例是浮动对象,可以随意拖动;ArcGIS Pro里则是布局元素,用布局工具精确对齐。
1.3 ArcGIS图例体系的整体认知
ArcGIS的图例分两个层次理解:第一个层次是内容列表里的图层符号,这是数据层面;第二个层次是布局视图里的图例元素,这是出图层面。图例元素本质上是图层符号的“投影”,它通过“图例项”来引用地图中的图层,并按照你设定的样式把符号和文字画出来。
正因为是“投影”,所以图例和图层之间有联动关系。图层符号一旦改了,图例自动更新;反之,你在图例里手工改的名字,一旦图层符号刷新,可能会被覆盖。这一点后面会专门讲怎么规避。理解这个联动机制,你就明白为什么很多看起来奇怪的图例问题,根源其实在图层属性里,而不是图例本身。
2. 插入图例与属性面板逐项拆解
2.1 从图例向导开始
在ArcMap中操作是这样的:先切换到布局视图(菜单栏“视图”→“布局视图”),然后点菜单“插入”→“图例”,弹出图例向导。向导第一步会让你选择哪些图层进入图例,左边是地图中所有图层,右边是准备放进图例的图层。这里有一个默认设置叫“自动更新”,建议先保留勾选。
图层顺序很关键。图例中的顺序默认和图例向导右侧列表的顺序一致,从上到下依次排列。一般原则是面状图层放最下面,线状放中间,点状放最上面,因为从视觉习惯上讲,大面积色块应该作为背景垫底。你可以用右边的上下箭头调整顺序。
向导后续步骤还会让你设置图例标题、字体、边框、背景、间隔等,这些都可以在生成之后继续改,所以第一次生成不用追求完美,先把基本结构搭出来,细节后面通过属性面板微调。老规矩,能后期改的,前期就别纠结。
2.2 图例属性面板参数逐一拆解
在图例上双击,弹出的“图例属性”对话框才是真正的核心。这里有几个关键参数我要重点说一下。
首先是“标题”一栏。默认会写“图例”两个字,但我建议改成更有信息量的名称,比如“土地利用类型”“高程分级(m)”。修改方法是:在“图例属性”→“标题”下方的输入框里直接改文字,如果要改字体、大小、颜色,点右侧的“符号”按钮,在弹出的“符号选择器”里设置。
其次是“图例项”列表。这个列表展示了图例引用的所有图层和对应的“图例项”。选中任意一个图层,点“样式”按钮,会弹出“图例项选择器”,这里可以选择不同的图例样式,比如面状符号是横条还是方块、线状符号是横线还是斜线、点状符号是单独一个点还是带文字说明。不同项目有不同的表达习惯,我一般用地类图用方块,道路图用横线,点位图用带圆点的样式。
再往下是“布局”选项卡,里面可以设置图例的排列方式,比如“自动”“垂直”“水平”“浮动”,以及“图例项”之间的间隔、标题与图例项之间的间隔、图例项内符号与文字之间的间隔。这些间隔默认值通常没问题,但遇到图例项特别多时,适当调小间隔可以让图例更紧凑。
2.3 双击和右键属性的区别
新手最容易迷惑的地方是,为啥在图例上点击和右键“属性”出来的窗口不一样?实际上,双击图例打开的是“图例属性”,右键菜单里的“属性”也是同一个;但如果在图例内部再双击某个单独的图例项,可能直接打开的是该图层的“图层属性”符号选项卡。
还有一次我在ArcGIS Pro里处理图例,发现Pro的图例设置面板在右侧,叫做“格式图例”窗格,里面的参数和ArcMap的“图例属性”对话框几乎一一对应,只是组织方式不同。Pro里图例是作为布局元素存在的,选中后能直接拖动控制点调整大小,图例内的文字默认不随图例框缩放,这跟ArcMap行为不一样,需要单独设置。
3. 图例项的核心设置,这些细节决定成败
3.1 改图例名称的正确姿势
图例里面显示的每一项文字,默认是图层名称或者字段值。比如图层叫“地类图斑”,字段值叫“林地”“草地”“建设用地”,图例里一般显示的就是这些。直接在图例上双击文字修改,当时看着改了,但下次符号一刷新,又变回原样。因为图例是动态的,它始终从图层属性读取显示名称。
正确做法是去内容列表里改。在图层上右键→“属性”→“常规”选项卡,在“图层名称”里输入你想要的显示名。比如把“地类图斑”改成“土地利用类型”,图例里的标题项会自动更新。还有一种更精细的做法,是修改图层符号的“标注”内容:在符号选择器里选中某个符号,右键“属性”,在“标注”栏输入自己想要的文字。这样每个图例项的文字都独立可控。
如果是细分类别的名称,比如分级着色图的图例项显示为“0 - 10”“10 - 20”,想改成“低”“中”“高”,则需要在图层符号的“分类”窗口里手动修改每个分类的“标注”列,改完图例跟着变。
3.2 图例文字怎么换行
经常有朋友问,ArcGIS图例里标签如何换行?这个问题有两个层面的答案。
如果是在图例属性里修改标题文字想换行,比如“土地利用类型”想分成两行显示,直接在输入框里需要断开的位置敲回车,一般换行是生效的。有些特殊字体或者某些版本下回车不生效,那就用“空格+回车”的方式,或者在输入框里分段粘贴,用两个短行拼成视觉效果上的两行。
如果是要让某个图例项的分类标注换行,比如“乔木林地_速生”想换行成“乔木林地/速生”,这里不能直接回车,最简单的方法是在“分类”窗口的“标注”列里,在要换行的位置先输入一个空格,再输入要换行的另半段,然后利用符号“标注表达式”里的“将标注换行”设置为“按空格换行”。具体操作是在图层符号的“高级”里打开标注表达式编辑器,把“类型”选择为“按空格换行”,这样标注中的空格位置就会自动变成换行点。
3.3 分级符号图例的标签处理
做专题图最常遇到的就是分级着色。比如人口密度分成五级,图例显示五段颜色条,每段右边有一个数值区间。默认情况下,每个图例项的文字就是分类的“标注”值。如果分类区间是系统自动算的,比如“1,000 - 5,000”,图例就显得啰嗦。我一般习惯手动把区间调整成“1000-5000”这种紧凑格式,或者改成文字等级,比如“低密度”“中低密度”“中密度”“较高密度”“高密度”。
注意一个细节:在“符号”选项卡里修改“标注”后,图例并不会立刻刷新,需要点击图例属性里的“应用”或直接关闭窗口才生效。如果改了标注但图例没变,先别急,右键图例→“属性”→“项目”选项卡,点击“重新构建”按钮强制刷新一次。
还有一种情况是图上某些分级没有任何要素,但图例仍然显示这一级。如果确实不需要,可在“分类”窗口里把这一级删除,或者让它不参与渲染,图例自然就少了这一项。
3.4 图例符号大小与地图符号大小不一致
出图时常遇到一个问题:图中符号大小正好,但图例里的符号要么偏大要么偏小,整体不协调。符号在图中按数据坐标显示,但图例里是按页面单位渲染的,所以它们默认是不一致的。
在图例属性里,双击某个图例项,打开“图例项选择器”,里面有“面状符号大小”“线状符号”“点状符号”等单独设置。默认是“自动”,此时图例里的符号尺寸会偏小。如果你想让图例符号跟图上视觉比例接近,需要手动调整“面状符号大小”的宽度和高度值。比如面状图例符号宽度从默认的12调到18,高度同步调,符号看起来就醒目很多。
这里有一个坑:ArcGIS Pro里默认情况下图例符号不会自动跟随符号大小变化,调整时必须同时修改“格式图例”窗格里的“图形大小”参数。如果发现图例里符号和图上差距很大,优先检查这个参数,别傻乎乎地改图层符号,改了图例也不会变。
3.5 多个图层如何合并进一个图例
项目图件里经常需要同一个图例同时展示多个图层,比如某一个图例同时包含“坡度分级”面状图层和“道路类型”线状图层。方法有两种。
第一种很直接,在“图例属性”→“图例项”里把需要的图层全部勾选,ArcGIS会自动为每个图层生成一个图例段,中间空开一段距离。这种方式简单可靠,推荐新人使用。
第二种是“图例合并”,把两个图层放在一个图例项里。操作是把多个图层编组,或者利用“地图要素分组”功能。更常见的一种做法是先把图例转成图形(右键图例→“转换为图形”),然后手动把多个图例段的文字和符号拼接在一起。这种方法灵活,但转成图形后就和图层符号断开了,后续再改符号不会自动更新,只建议在完全定稿后再用。
3.6 只显示图面上出现的要素
有些图例项在图上只有很细微的一点点面积或线长,但图例里占了一大块。如果你不希望在图例里显示某些细小类别,可以在内容列表里对该图层打开“符号”选项卡下的“高级”→“仅显示可见要素”选项。
注意,这个选项不是字面上的“只显示可见的”,它的准确含义是:图例只包含当前视图范围内实际渲染的要素对应的分类。如果当前窗口只放大了局部区域,那么图例就只保留显示范围内的分类,缩小到全图范围时又会自动恢复。这个功能在做局部放大图件时特别好用,但在整个版面出图时,如果地图范围没设置好,会导致图例缺项,我因此闹过笑话,所以用之前一定要确认地图范围已经固定。
4. 图例外观与版面调整
4.1 边框、背景、阴影,一网打尽
图例外观在“图例属性”对话框的“框架”选项卡里设置。ArcMap和Pro的默认图例都带一条细边框,有人喜欢去掉,有人喜欢加阴影,这个看整体版面风格。
“框架”选项卡里,“边框”选择“无”就是去掉边框;选择“单线”“双线”等样式可以加边框,点击右侧的“符号”按钮还能调整边框线型和颜色。“背景”一栏可以加填充色,常见的是纯白或者浅灰;如果底图比较复杂,给图例加一个不透明的白色背景,可以保证图例文字清晰可读。“阴影”可以给图例加一个简单的投影效果,让图例从底图中“浮”出来。
我个人建议:如果底图信息量大、颜色杂,图例必须加不透明背景和边框;如果底图很清爽,就尽量简化图例外观,别抢地图主体的视觉注意力。地图制图的原则是“地图是主角,图例是配角”,图例外观越克制越好。
4.2 图例的间距与排列方式
图例项之间的间距,在图例属性“布局”选项卡中调整。参数包括:
- “标题”与“图例项”之间的间隔
- “图例项”之间的垂直间隔
- “图例项”内“符号”与“文字”之间的间隔
这些默认值都不是最优的,尤其是图例项特别多的时候,默认间隔会显得松散。我做专题图时一般把“图例项”之间的间隔默认值从24改成12到16,图例瞬间紧凑很多。如果图例项的标注文字很长,可以把“符号与文字”的间隔从默认的12改成6,让文字更贴近符号。
关于排列方式,ArcMap只有在部分场景下才支持“横向排列”选择,尤其是点状图例项,可以设置成水平排列,这样多个点状符号并排放在一行,省空间也美观。如果你想实现类似origin图例横向排列的效果,思路是:把多个单点图例项的“布局”排列方式改成“浮动”,然后用鼠标拖动每个图例项,把它们拖到同一行。这个方法超好用,但只在最终阶段才操作,因为你一旦改动图层数量,浮动的手动位置可能错乱。
4.3 图例与比例尺、指北针的整体布局
一张完整的专题图,除了图例还有比例尺、指北针、图名、制图单位等信息。图例作为其中一部分,要和这些元素形成统一的视觉节奏。
排版时有几个通用原则可以参考:
- 图例与人眼阅读顺序一致,一般放在图面右下方或左下方。
- 图例不要和比例尺靠得太近,至少保持一个图例边框宽度的距离。
- 图例的字体大小不要超过图名字体大小的二分之一,这样才能保证视觉层级清晰。
- 如果图面横向较长,可以考虑把图例放在右侧竖向区域,用“浮动”模式调整成两列,避免图例占据过多横向空间。
ArcGIS Pro在这方面更好用,布局视图里有标尺、参考线、对齐工具,可以把图例和比例尺整齐对齐。ArcMap就全靠肉眼和“眼睛对比”,我自己习惯先把所有布局元素的位置用矩形框规划好,再往里面放图例。
4.4 把设置好的图例存成模板,一劳永逸
做图多年,最痛苦的是每张新图都要重新调一遍图例。后来我学聪明了,把做好的舒服的图例存成模板。
ArcMap里,右键内容列表的图层,选择“保存图层文件”(.lyr),可以保存符号配置;但图例本身的样式配置保存在制图模板(.mxd)里。所以我通常的做法是:建一个专门的“制图模板.mxd”,里面的图层、符号、图例、比例尺、指北针全部调好,只保留占位数据,新项目直接复制这个mxd,替换数据源,图例基本不用大改。
ArcGIS Pro更直接,可以将布局另存为“布局文件”(.pagx),下次直接插入这个布局,图例样式全保留。如果公司或课题组有统一的出图规范,强烈建议由一个人做好模板,大家统一使用,能省下大量调格式的时间。
5. 常见图例问题排查实录
5.1 图例名称改了又变回去
这是被问得最多的问题。现象是:直接双击图例文字修改名称,当时生效,但一旦图层符号刷新,或者图例重新构建,名称就变回默认。
原因前面讲过,图例是从图层属性动态读取名称的,手动改的只是“临时显示”,没有被写入图例项的配置。正确做法是在图层属性里改图层名称,或在符号分类里改“标注”。如果确实需要完全脱离图层独立显示,唯一的办法是右键图例→“转换为图形”,但转换后不再自动更新,请谨慎操作。
5.2 图例项太多,版面塞不下
图例项过多是专题图常见问题。比如土地利用类型分了二十几个二级类,全放图例里,图例比地图还长。解决办法有几种:
- 在“图例属性”→“图例项”里取消不必要的图层。
- 将分类合并,比如把二十几个二级类合并成几个一级类,用“符号选择器”里的“符号合并”功能实现。
- 只保留面积或数量占比前几名的分类,其他归为“其他”类别,在图例里显示“其他”即可。
- 图例分两列显示,合理利用版面空间。
上面这些方法很多项目都在用,效果立竿见影。要注意的是,分类合并后图例项数量变少,但地类统计表里仍可以保留详细分类,数据层面不受影响。
5.3 图例符号和地图符号不一致
符号不一致通常有两个原因。一是图例的符号样式和图层符号样式选择不一致,比如图层里用的是“渐变颜色”渲染,而图例项样式选的是“水平条”,显示出来自然不同。解决方法是右键图例→“属性”→“图例项”→选中图层→“样式”,换回自动或对应的样式。
二是图例项被手动调整过,破坏了和图层符号的链接。ArcMap中,图例项样式窗口里如果不小心点击了“生成”按钮,可能会打乱原有样式设置。建议在符号调整阶段,保持图例样式为“自动”,最后阶段再微调。
5.4 图例导出图片后模糊或文字变形
很多人遇到过:在ArcMap里看图例挺好的,导出成JPG或PDF后图例文字发虚、符号粗糙。这多半是导出分辨率设置太低。
ArcMap导出地图时,在“导出地图”对话框里,把“分辨率”从默认的96 DPI改成300 DPI以上,导出成PDF则选择“矢量化”,图例文字和符号就会清晰锐利。ArcGIS Pro同样在“共享”→“导出布局”里设置DPI,建议导出印刷级别的300 DPI或更高。
还有一个隐藏坑:如果图例使用了某些特殊字体,导出到没有该字体的电脑上,文字会变回默认字体甚至变成乱码。出图前检查一下字体兼容性,或者把文字转成路径/轮廓,虽然麻烦一点,但能保证在任何设备上打开都一模一样。
5.5 常见问题速查表
| 问题现象 | 可能原因 | 解决办法 |
|---|---|---|
| 图例名称改了又变回去 | 直接改图例文字,未改图层属性 | 在图层属性或符号标注中修改名称 |
| 图例里出现不需要的图层 | 图例项包含辅助图层 | 图例属性→图例项,取消勾选 |
| 图例文字挤一起 | 图例项间距太小或字体过大 | 布局选项卡调大间隔或减小字号 |
| 图例符号过小看不清 | 图例项符号大小未单独设置 | 图例项选择器调整符号宽高 |
| 分级图例没有第几级 | 该分类无要素或已删除 | 确认分类设置,勾选“显示” |
| 图例缺部分分类 | “仅显示可见要素”被开启 | 关闭该选项并重新构建图例 |
| 导出后图例模糊 | 分辨率太低或未用矢量导出 | 导出分辨率设300 DPI以上 |
| 图例项多了想换行 | 标注表达式未设置 | 在符号标注中按空格换行 |
6. 我的一点实操心得
最后分享一个这些年用下来的习惯。
每次插入图例之后,我做的第一件事不是调外观,而是先关掉“自动更新”。当然这个建议很多人会反对,因为自动更新能保证图例和图层同步。但我自己更喜欢反过来:前期所有图层符号没确定之前,开启自动更新,让图例跟着变;但到了版面设计阶段,所有内容确认无误后,右键图例→“转换为图形”,彻底脱离数据联动。
转为图形之后,图例的每一个元素都变成矢量图形和文字框,我可以用“编辑”工具逐个微调,比如单独拉宽某个图例项的符号、删掉多余的重复项、把标注文字手动挪位。这在做那种需要把图例排布得特别精细的汇报图件时非常好用。代价就是之后如果图层符号改动,图例不会再自动更新,所以转图形前必须确认符号最终版。
另外,配色方案在ArcGIS Pro里是可以直接应用为图例样式的,但如果你的配色是自己定义的,建议顺手把配色模板保存成“样式文件”,这样下次新建图,调出样式文件,图例的颜色、字号、间距全都复用,效率高很多。我自己是把常用的几套专题图配色和对应的图例样式都存成了样式,项目来了直接套,省时又省心。
图例调好,整张图的质感能上一个大台阶。希望这篇文章能帮你少走点弯路,把更多时间留给真正的地图内容本身。