QGIS|如何制作行政区划四色图

本文介绍了如何使用QGIS的【拓扑着色】工具制作行政区划四色图,包括颜色索引的建立、配色过程,以及最终效果图的展示,帮助读者掌握行政区划图的色彩配置技巧。
部署运行你感兴趣的模型镜像

行政区划单元是常用的底图要素,通常用颜色进行区分,这些大面积分布的色彩往往决定了一幅地图的配色风格,因此,行政区划图的色彩配置将影响到地图信息表达效果。

本文结合QGIS的【拓扑着色】工具,介绍QGIS实现行政区划四色图的过程。

 

 01 什么是四色图

 

行政区划图着色要求相邻行政区划单元颜色不相同,在计算机领域通常被称为“四色图”问题,即对于任一地图,只用不多于四种颜色,就能使相邻的行政区划单元颜色不相同。实际上,如果将颜色的数量限制为四种,有时候会导致算法找不到最优解,因此一般认为行政区划配色使用3-7种颜色比较适宜。

 

 02 建立颜色索引

QGIS 3.0之前是通过插件实现拓扑着色的,从 3.0开始内置【拓扑着色】模块,替代了原有的插件功能,并改变原来完全依赖计算机图论着色的方式,转而参考要素的空间布局对着色算法做出了优化,可以理解为从纯粹的数学方法( abstract mathematical solution)变为地图制图的方式(cartographic solution)解决着色问题。

 

【拓扑着色】给多边形要素分配颜色索引值,使各个相邻多边形有不同颜色索引值,尽量减小所需颜色数,并将颜色索引保存到图层属性表的“color_id”字段中。然后利用图层的分类(Classified)渲染方式,给每个颜色索引设置不同的颜色,即可得到行政区划四色图。

 

我们先看看生成颜色索引的操作流程。
 

在【浏览】面板定位到2015年行政区划存储路径,将“CN_sheng_A.shp”文件拖拽到地图主窗口中。

 

为了对比,打开行政区划图层“CN_sheng_A”的属性表,可以看到原始数据包含了AREA、PERIMETER、SHENG_、SHENG_ID、SHENG、name共6个字段。

 

点击菜单【处理】->【工具箱】,打开【处理工具箱】面板。

 

在搜索框输入关键词“topo”,从筛选结果中依次找到【制图学】->【拓扑着色】,双击运行。

 

在弹出的拓扑着色对话框中,设置【输入图层】为“CN_sheng_A”,【最少颜色数】表示制图使用最少的颜色数,默认为4。

 

【要素间最小距离】为同一个颜色的要素之间最小距离,防止距离较接近(但互不接触)的要素分配到相同颜色。保持默认值即可。

 

【Balance color assignment】:颜色平衡,即分配颜色时使用的方法。默认为“按要素数目”,尽量使各颜色索引的要素数量接近。“按分配的面积”模式可以平衡各颜色的总面,避免大面积的要素在地图上出现显著的颜色。“按颜色之间的距离”则是尽量增长同一颜色要素之间的距离,令色块分布得更均匀。

 

【Colored】表示输出结果存储方式,设置将结果保存到名为“sheng-color.gpkg”的GeoPackage文件中。点击【运行】按钮,开始计算颜色索引。

 

算法运行结束后,点击【Close】返回QGIS地图窗口。可以看到【图层】面板中添加了新图层“sheng-color”。右键点击该图层,打开属性表窗口。

 

属性表中增加了“color_id”字段,用1-5表示各个要素的颜色索引取值。那么,如何使用这些颜色索引呢?

 

 03 配色

点击【图层】面板上方的【打开图层样式面板】按钮,打开图层样式面板。

 

在【图层样式】面板中,图层下方的下拉框选择“分类”,【值】下拉框选择“color_id”字段,点击的【分类】按钮,一幅相邻要素颜色互不相同的行政区划着色图显示在地图窗口中

 

默认的配色总是不那么让人满意。点击【颜色渐变】,在弹出菜单中选择【打乱随机颜色】,配色将会发生改变。改变随机配色,直到满意。

 

双击分类列表中的色块,打开符号设置面板,可以设置对应条目的样式。

 

在符号设置面板中,选择符号图层“简单填充”,在下方设置所需要的颜色、描边样式、线宽等选项。完成后点击按钮返回,继续设置其他分类的风格。

 

最后,点击【图层样式】面板的,以“name”字段为图层添加标签,效果如下。

 

 

 04 效果图

有了颜色索引,就可以根本不同的配色方案,生成不同风格的行政区划图了。下面是我选择的一些配色方案效果,有没有你喜欢的呢?(如果喜欢,可以关注微信公众号,后台留言向我索取样式文件。)

 

参考资料:

[1] 魏智威等,顾及视觉规律的行政区划图自动着色回溯法,测绘学报。

 


版权声明

 

本文欢迎转载,转载时请注明出处。

 

 

您可能感兴趣的与本文相关的镜像

Yolo-v8.3

Yolo-v8.3

Yolo

YOLO(You Only Look Once)是一种流行的物体检测和图像分割模型,由华盛顿大学的Joseph Redmon 和Ali Farhadi 开发。 YOLO 于2015 年推出,因其高速和高精度而广受欢迎

<think>我们被要求回答关于使用QGIS美化行政区划的教程。根据引用内容,我们可以提取以下信息: - 引用[1]提到QGIS可以导入各类地理数据,进行坐标系转换、数据属性关联、空间分析等,并可以完成底绘制、层叠加和符号化表达,为制作“千层饼”视奠定基础。 - 引用[4]提到在3D立体展示行政区划时,存在边界不明显、颜色区分不明显、无中文标注、高度值无差别等问题,并提到要进行调整优化,包括区域颜色设置等。 - 引用[5]提到通过策略和代码示例可以确保地在不同设备上的展示效果,并提到将深入探讨地数据与ECharts的动态绑定(但用户问题集中在QGIS上,因此这部分可能不直接相关)。 用户问题:我想使用QGIS美化行政区划的方法或步骤。请问QGIS如何美化行政区划教程? 根据引用和QGIS的一般功能,我们可以给出以下美化步骤: 1. **数据准备**:获取行政区划矢量数据(如Shapefile或GeoJSON格式),并导入QGIS。 2. **坐标系转换**:确保所有层使用相同的坐标系(如WGS84或适合的投影坐标系)。 3. **符号化设置**: - 使用不同的颜色填充不同的行政区划区域(引用[4]提到区域颜色设置)。 - 设置边界线的样式(如加粗、改变颜色)以突出边界(引用[4]提到边界不明显)。 4. **添加标注**: - 为每个行政区划添加中文标注(引用[4]提到没有中文标注)。 - 调整标注的字体、大小、颜色和位置,避免重叠。 5. **3D效果(如果需要)**: - 引用[4]提到3D立体展示,可以使用QGIS的3D视功能(如Qgis2threejs插件或内置的3D视)。 - 设置每个区域的高度值(例如,根据某个字段值设置高度,如人口或GDP)以产生立体效果(引用[4]提到各区域没有明显高度值差别)。 6. **制作专题**: - 根据某个字段(如人口密度、GDP等)进行分级设色,制作专题。 7. **添加例、比例尺、指北针等地元素**。 8. **输出地**:导出为片或PDF,或发布为Web地。 注意:引用[1]提到QGIS有强大的数据处理和符号化能力,引用[4]则具体提到了优化可视化的几个方面。 因此,我们可以按照以下结构回答: 1. 数据准备与导入 2. 设置样式(符号化) 3. 添加标注 4. 3D效果(可选) 5. 布局与输出 由于引用[4]中提到了3D立体展示,我们可以将3D效果作为可选步骤加入,但用户问题没有明确要求3D,所以主要讲解2D美化。 下面开始编写回答:</think>### QGIS美化行政区划的步骤教程 #### 1. **数据准备与导入** - **获取数据**:下载行政区划矢量数据(推荐Shapefile或GeoJSON格式),确保包含中文名称字段[^2]。 - **导入数据**:在QGIS中通过`层 → 添加矢量层`导入行政区划数据。 - **坐标系检查**:右键层 → `属性 → 源`,确认坐标系(如WGS84/EPSG:4326),不一致时使用`处理工具箱 → 重投影`转换。 #### 2. **基础美化设置** - **颜色填充**: 1. 双击层打开`层样式`面板 2. 选择`分类`或`分级`渲染 → 选择区分字段(如行政区名称) 3. 点击`颜色渐变`自定义配色(建议柔和对比色) ```python # 示例:按行政区名称自动分配颜色 layer.renderer().setClassAttribute("name") # 根据名称字段渲染 ``` - **边界强化**: - 在`符号化`选项卡选择`轮廓线` - 设置边界线宽(0.3-0.5mm)、颜色(深灰)和透明度(10-20%) #### 3. **中文标注优化** - **激活标注**: 1. 层右键 → `属性 → 标注` 2. 选择包含中文名称的字段(如`name_cn`) - **样式调整**: - 字体:微软雅黑/思源黑体(避免乱码) - 大小:8-12pt(根据缩放级别调整) - 位置:`放置 → 偏移`设置离边界距离 - 背景:勾选`缓冲`增加白色半透明衬底 #### 4. **3D立体效果(可选)** - **启用3D视**: 1. `视 → 新建3D地` 2. 在3D配置面板设置: - 高度字段(如人口密度) - 拉伸比例(建议20-50倍) - 材质颜色(关联行政区分类色) - **解决引用[4]问题**: - 边界不显:勾选`边线渲染`并设置深色粗线 - 高度差异:选择数值型字段(如GDP)作为拉伸依据 #### 5. **高级美化技巧** - **晕渲效果**: 1. 复制行政区层 → 设置为纯白填充 2. 使用`处理工具箱 → 偏移线`向外扩展0.3mm 3. 添加高斯模糊(`层样式 → 模糊`) - **叠加底**: - 安装`QuickMapServices`插件 - 添加浅色水墨风底(如`CartoDB Positron`) - **动态交互**: - 使用`变量宽度线`插件制作流向 - 通过`数据覆盖 → 字段计算`实现鼠标悬停高亮 #### 6. **成果输出** - **布局设计**: 1. `工程 → 新建布局` 2. 插入地例(勾选`仅当前层`)、比例尺 - **导出设置**: - 打印分辨率≥300dpi - 格式建议PDF(保留矢量元素)或PNG(带透明通道)
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值