使用QGIS制作点密度专题图
点密度图(Dot Density Map)是专题地图的一种,是用一定大小的、形状相同的点表示分散分布现象的分布范围、数量特征和分布密度的制图方法,又叫点值法或者点法,广泛应用于表示人口、农业、畜牧业等专题图上。点密度地图上,点的疏密即可看出现象的集中或分散程度,点的个数越多越密集,反映数据所表示的事物或现象在该区域的密度或浓度越大。
本文使用QGIS演示点密度地图的制作过程,最终效果如下:
01 下载示范数据并加载
本文的示范数据为江苏省行政区划,来源于网络,下载地址如下:
链接:https://pan.baidu.com/s/1qhkzmCgzrScTC_ubeYlLCA
提取码:v19m
启动QGIS,点击工具栏的按钮,打开数据源管理器对话框。
在数据源管理器对话框中,依次点击【矢量】->【文件】单选按钮->矢量数据集右侧的【…】按钮,找到下载的jiangsu.gpkg文件,点击下方的【添加】按钮,在弹出的对话框中,选中“区县-面”、“市级-面”、“省级-面”,点击【OK】,将三个图层添加到地图窗口。
返回QGIS主窗口,可以看到打开的三个面图层:“区县-面”、“市级-面”和“省级-面”。先取消勾选“市级-面”和“省级-面”暂时关闭这两个图层。
选中“区县-面”图层,点击图层面板上方的按钮,在窗口右侧打开图层样式面板,选中“简单填充”,设置如下参数:
填充颜色:白色;
填充方式:实线;
描边颜色:#8f8989。
至此,我们将示范数据加载到QGIS,并做了基本的符号化设置,为后续点密度地图的制作做好了准备。
02 生成点密度图层
右键点击“区县-面”->【打开属性表】,打开属性表窗口。观察区县的属性,可以看到“pop_wan”字段,表示模拟的、以万人为单位的人口数量,该字段为生成点密度图的核心数据。(注意,此数据为测试数据,与官方发布的人口统计数据无关。)
关闭属性表窗口,点击菜单【矢量】->【研究工具】->【多边形内的随机点】,打开参数设置对话框。
说明:
【多边形内的随机点】算法对输入图层中的每个多边形生成指定数量的点,例如,指定输入图层为江苏省的区县面,区县内点的数量指定由其人口数确定,则算法将根据人口数量多少在每个区县内生成随机点,这些点随机分布于多边形内,设置点之间距离参数可以控制其最小相距距离。
在“多边形内的随机点”参数对话框内,输入多边形:“区县-面”,点击“每个要素的点数目”右侧的按钮,从下拉菜单选择【编辑】,打开表达式对话框,设置表达式控制每个区县内生成的点数。
在弹出的“表达式字符串构建器”对话框中,展开函数区域的【字段和值】节点,双击“pop_wan”字段,将它添加到表达式区域,表示地图上每一个点代表10000人。点击【OK】按钮返回。
设置“多边形内的随机点”其他参数:
点之间的最小距离:100米。该参数表示如果当前面要素的100米距离范围内已经有一个点,则不会在添加点。
点之间全局最小距离:50米。该参数表示全局范围内点与点之间的最小距离为50米。
说明:
“点之间的最小距离”和“点之间全局最小距离”两个参数之间的区别在于:前者仅考虑同一个多边形内的点,后者考虑所有已经生成的点。如果将“点之间全局的最小距离”设置为等于或大于(局部)“点之间的最小距离”,则后者无效。
点击【运行】按钮,QGIS根据设置的参数生成随机点。根据生成点的总数量不同,算法所需要的时间也不同。
算法运行结束后,可以在QGIS的图层面板看到新生成临时图层:“多边形内的随机点”,该图层自动显示到地图窗口中。
03 点密度图层符号化
接下来我们对生成的随机点做一些样式设置,以达到开篇所显示的地图效果。
首先,把存储于内存的临时图层永久化保存到硬盘。右键点击“多边形内的随机点”->【永久化】,在弹出的对话框中设置保存的路径,图层名:“人口密度(1点=1万人)”。点击【OK】完成临时点图层的永久化。
然后,开始设置点的样式。选择“人口密度(1点=1万人)”图层,在图层样式面板中,选中“简单标记”,设置如下参数:
大小:0.45毫米;
填充颜色:#820000;
描边颜色:任意颜色;
描边样式:不显示画笔;
符号:圆形。
得到符号化效果如下:
接下来,设置行政区划背景图层的样式。
在图层面板取消勾选“区县-面”使其隐藏,勾选“市级-面”,将市级图层显示出来。
右键点击“区县-面”->【样式】->【复制样式】->【所有样式类别】,将“区县-面”图层的样式复制到剪贴板。
类似步骤,右键点击“市级-面”->【样式】->【粘贴样式】->【所有样式类别】,将“县级-面”图层的样式复制到“市级-面”图层。
保持“市级-面”图层的选中状态,点击图层样式面板的标签,切换到标注设置页面。设置参数如下:
标注方式:单一标注;
值:NAME;
在文本 页面设置字体和颜色如下:
字体:选择一个合适的字体,比如本文选择“华光超粗黑_CNKI”;
颜色:#5c5c5c;
在轮廓 页面设置文本的缓冲区:
勾选“绘制文本缓冲区”;
颜色:#d4d4d4;
以上设置完成后,得到的市级行政区划标注效果如下:
为了突出省级界线,设置省级行政区划背景。拖动“省级-面”图层将其置于“市级-面”图层之上,并勾选显示该图层。
在图层面板选中“省级-面”图层,右侧的图层样式面板设置如下:
渲染方式:反转多边形;
填充的子渲染方式:形状渐层填满;
渐变色:双色;
颜色1:#6b6b6b;
颜色2:#ffffff,透明度:50%;
阴影样式:选择“设置距离”,距离保持默认的5毫米。
完成省级边界设置后,效果如下:
最后,从互联网地图中选择一个合适的底图,例如本文选用MapTiler:确保安装MapTiler插件,从浏览器面板展开MapTiler节点,双击“Basic”将其添加到地图窗口。关闭MapTiler不需要的图层后,最终的效果如下:
04 常见点密度地图实现的讨论
在ArcGIS、超图的iDeskpro等其他GIS中,点密度图的实现是通过符号化系统,因此点密度图作为图层数据的符号表达,以图层属性的形式与数据关联。
与此不同的是,QGIS直接根据数据采用随机点算法生成点图层(物理存在的数据),然后对点图层进行符号化表达,所以在制作方式上显得略微繁琐。另外,有些GIS软件提供了均匀布点的选项,比如超图的iDeskpro,但QGIS针对多边形范围目前暂时仅提供生成随机布点算法,所以具有一定的局限性。
推荐阅读:
使用QGIS实现城市空气质量指数(AQI)数据可视化
QGIS 3.10 制图手把手教程
版权声明
本文欢迎转载,转载时请注明出处。
使用QGIS制作点密度专题图相关推荐
- arcmap制作地闪密度专题图
arcmap制作地闪密度专题图 最近需要制作地闪密度专题图,笔者现有数据是历年闪电定位数据资料以及省的shape地图,在次记录下遇到的问题及解决方法. 1.历年闪电定位数据资料有70多W条 闪电定位数 ...
- ArcGIS基础:相同空间人口图层的人口数量字段转移至小区图层(核心:相交操作)及制作人口密度专题图
本实验目标: 人口普查数据分配给小区(两个数据空间和属性不一样,人口普查数据含有人口数量字段.交通小区(交通小区只是一个普通小区的名字,不要纠结)数据没有人口数量字段): 把人口字段搞到交通小区数据图 ...
- MAPBOX制作专题图
最近看了一份人民大学的报告,<中国城市政商关系排行榜2020>,https://new.qq.com/omn/20201230/20201230A0F3MY00.html. 讲的是中国各个 ...
- 腾讯地图JS API制作专题图
最近看了一份人民大学的报告,<中国城市政商关系排行榜2020>,https://new.qq.com/omn/20201230/20201230A0F3MY00.html. 讲的是中国各个 ...
- 百度地图JS API制作专题图
最近看了一份人民大学的报告,<中国城市政商关系排行榜2020>,https://new.qq.com/omn/20201230/20201230A0F3MY00.html. 讲的是中国各个 ...
- 高德地图JS API制作专题图
最近看了一份人民大学的报告,<中国城市政商关系排行榜2020>,https://new.qq.com/omn/20201230/20201230A0F3MY00.html. 讲的是中国各个 ...
- [转] ArcEngine 产生专题图
小生原文 ArcEngine 产生专题图 ArcEngine提供多个着色对象用于产生专题图,可以使用标准着色方案,也可以自定义着色方案,ArcEngine提供8中标准着色方案. 一.SimpleRen ...
- qgis设置显示坐标系_使用QGIS制作仪表板
仪表板(Dashboard)是商业智能领域常用的交互式数据可视化技术,通过集成多种数据视图,并提供不同数据视图之间的灵活交互能力,达到深入分析数据规律进而辅助科学决策的目的. 借助Data Plotl ...
- 地理信息系统(GIS)系列——专题图
1.专题图简介 专题图是用于分析和表现数据的一种强有力的方式,用户可以通过使用专题图的方式将数据图形化,使数据以更直观的形式在地图上提现出来. 专题图种类 独立值专题图 点密度专题图 范围专题图 等级 ...
最新文章
- Xen之初体验:HA(额外附加)
- VC控件 TreeCtrl 与 ListCtrl 演示(zz)
- iOS学习资源(三)
- PHP替换文本文件其中一行,使用PHP替换文本文件中的行
- 【Git】git add -A = git add . + git add -u
- VC获取父进程PID
- lombok null字段不显示 继承_Lombok 要知道的 8 个点
- 【接口文档】Django restful framework中自动生成API文档
- 面试题22. 链表中倒数第k个节点
- OpenShift 4 - 用Debezium+Kafka实现MySQL数据库的CDC
- window 自动安装MySQL数据库_windows安装MySQL数据库
- Linux平台 Oracle 11gR2 RAC安装Part1:准备工作
- php开发 文件下载,php 实现文件下载
- js基础知识汇总11
- android记事本的app,自己编写的Android记事本APP软件
- windows批量转换网易ncm音乐
- The POM for is missing, no dependency information available
- 群发邮件避免被识别为垃圾邮件
- 类图之实体之间的关系
- Spring Data Redis学海拾贝
热门文章
- C++基础知识整理(面试热点)
- matlab中scr,基于matlab生成的scr文件,实现autocad曲线绘制,代码问题
- io多路复用的原理和实现_IO多路复用机制详解
- 计算机开机界面图片怎么修改,怎么修改Win7开机登录界面壁纸 Win7开机登录界面壁纸修改图文教程...
- equest源码分析及其与==的区别
- IT技术外包公司值得去吗?
- [学习笔记]多元线性回归分析——理解篇
- Libvirt同步机制 —— 实现原理
- Android-内存泄露知识详解
- 动画跨专业考研计算机,跨专业考研动漫