二元分区着色图(Bivariate Choropleth Map)是多变量地图的一种,可以用颜色在地图上展现两种现象的空间关系,例如研究人口密度和犯罪率的关系、呼吸系统疾病发生率与PM2.5之间的关系、人口密度与人均收入的关系等。

文本将使用QGIS演示二元分区着色图的两种实现方法:混合图层法和数据驱动法。

 01 示范数据

本文选用美国县级肥胖症和糖尿病为示范数据,用二元分区着色图展示肥胖与糖尿病之间的空间关系。

数据和配色文件下载链接:

https://pan.baidu.com/s/1eQXP1cwn611pr6euFShiOA

提取码:clbe

使用QGIS打开示范数据“cnty”后,观察到属性数据如下图:

字段说明:

NAME:县名称;

STATE_NAME:所属的州;

Pct_Obese:肥胖人口占县总人口的百分比;

Pct_Diabet:患糖尿病人口占县总人口的百分比;

Diabetes_C:将Pct_Diabet按照等数量分为三个等级,用1表示糖尿病低发病率地区,2表示中等地区,3表示高发地区;

Obesity_Cl:将Pct_Obese按照等数量分为三个等级,用1表示肥胖症低发地区,2表示中等发病率地区,3表示高发地区;

BivariateC:Diabetes_C和Obesity_Cl字段的组合,表示糖尿病和肥胖症的组合关系,例如属性值“Class 1”代表两种病发病率均为低的县,“Class 2”代表糖尿病低发病率、肥胖症中等发病率……以此类推。

 02 混合图层法

使用混合图层实现二元分区着色图的过程比较简单,即将两个变量分别着色,然后用图层混合模式实现两种着色的叠加。

首先,在图层面板中右键点击“cnty”,从弹出菜单选择【创建图层副本】,将图层复制为两份,并将两个cnty图层分别重命名为“糖尿病”和“肥胖症”。

打开“糖尿病”图层的属性对话框,在符号化标签中,选择“分类”渲染,字段【值】选择“Diabetes_C”,点击下方的【OK】按钮进行分类,默认情况下QGIS为每个类别随机分配颜色。

二元分区着色图由于结合了两个变量,每个变量又分成多个类别,往往导致地图需要表达的颜色比较多。如本例中糖尿病发病率和肥胖症发病率各分为3个类别,两两结合,将产生低糖尿病发病率+低肥胖发病率、低糖尿病发病率+中等肥胖发病率、低糖尿病发病率+高肥胖发病率等9种组合,要在一幅地图中有效地区分代表这9种组合的颜色,需要两个变量增长方向及对称轴三个方向上的颜色具有区较明显区分度,根据制图学经验,配色基本原则总结如下:

  1. 两种色带的色调应保持较大差异,最好取互补色或者互补色附近的颜色,以便更好区分两种现象在地图上的分布;

  2. 两种色带的起始颜色应相同,通常建议选用比较亮的中性颜色,如亮灰色;

  3. 颜色越深、饱和度越高,表示变量值越大;

本文选择浅灰(RGB:243, 243, 243)、浅蓝(RGB:180, 211, 225)、深蓝(RBG:80, 157, 194)三个颜色表达糖尿病发病率的从低到高,对应属性字段中1-3的取值,如上面截图所示。

同样,在图层面板中选择“肥胖症”图层,对其“Obesity_Cl”字段使用“分类”渲染,分别使用浅灰(RGB:243, 243, 243)、黄色(RGB:243, 230, 179)、深黄(RGB:243, 179, 0)表示1-3等级的肥胖症发病率,如下图:

至此,我们分别做好了两个图层的分区着色图,接下来使用图层混合模式将颜色混合。

在图层面板中将“糖尿病”和“肥胖症”两个图层均设置为可见状态,选择“糖尿病”图层(确保该图层位于上方)。

在图层样式面板中,下拉找到图层渲染,选择“乘(正片叠底)”混合模式。

一幅展现糖尿病与肥胖症发病率的空间关系二元分区着色图就完成了:

使用混合模式虽然能够快速生成二元分区着色图的配色表,但是从混合模式的实现方式和地图颜色可以看出:

  • 合成以后的地图难以对单独某个色块做颜色上的调整,因为修改图层的一个色块至少改变与之混合的三个结果颜色;

  • 由于混合模式的原理是将上下两个图层按照一定算法组合成新的颜色,因此,结果图层中一般难以看到图层的原始配色。例如,本文的“糖尿病”和“肥胖症”两个图层均用浅灰色(RGB:243, 243, 243)来表示最小值分类,即糖尿病低发病率和肥胖症低发病率的地区,通过“乘(正片叠底)”混合以后,结果图层不再出现(RGB:243, 243, 243),双低(糖尿病低发病率和肥胖症低发病率的地区)的表达颜色变为RGB:232, 232, 232,是各颜色通道归一化以后的乘积,即(243/255)*(243/255)=0.91,0.91*255=232,因此更加难以控制地图整体的配色效果。

 03 数据驱动法

数据驱动的原理很简单,即先将单变量分组,然后将分组结果合并存储到新字段中,再对该字段使用“分类”渲染方式进行渲染。

例如本文所选数据,先将糖尿病发病率分为高、中、低三个等级,用3、2、1表示,再将肥胖症发病率也分为高、中、低三个等级,同样用3、2、1表示,最后计算二者的组合:11表示双低(低糖尿病低肥胖症),归为class 1;12表示低糖尿病中肥胖症,归为class 2;……以此类推,共组合为9种类别。

注意,一般拿到的原始数据有时候并未提供类似的分组字段,需要根据研究情况自行构建,具体的数据处理过程本文不再赘述。

接下来用“分类”渲染所得到的类别字段。

右键点击图层面板中的“糖尿病”或者“肥胖症”图层,弹出菜单选择【创建图层副本】,将新图层名称改为“糖尿病和肥胖症”,如下图:

选中“糖尿病和肥胖症”图层,在图层样式面板中选择“分类”渲染,字段选择“Bivariate”,即组合分类,点击下方的【分类】按钮,得到默认的随机颜色地图。

将分类框中无效的数值(-999)和其他值删掉,保留9种组合分类,分别双击每个类别对应的色块,对颜色进行调整,得到如下效果:(此配色方案在示范数据压缩包中:9类样式.qml)

从上图可以很明显看到,二元分区着色图有效地表达出美国东南部是糖尿病和肥胖症高发地区,需要进一步研究和分析其背后的原因。

 04 小结

二元分区着色图是地理空间分析中多变量分析的方法之一,其使用的前提条件是两个变量与空间单元是否拆分无关,例如本例中两种疾病发病率,把一个县的划分为任意两个区域,他们的疾病发病率不会改变;对于拆分空间单元会导致数据发生变化的统计数据,则不适合使用该方法,例如面积、周长等。

另外,研究表明,人眼识别颜色的数量最佳区间为4-6种颜色,因此建议每个变量的分类不大于3,即组合后的颜色数量不大于9,否则容易导致读图效率不高、重点信息不突出等问题。

在ArcGIS Pro的符号系统中,提供了双变量颜色(Bivariate colors)功能,因此使用ArcGIS Pro制作双变量地图更加快捷方便一些,感兴趣的朋友也可以申请试用体验一下。


参考资料:

[1]  https://en.wikipedia.org/wiki/Choropleth_map。

[2] https://www.esri.com/arcgis-blog/products/mapping/mapping/making-bivariate-choropleth-maps-with-arcmap/。

[3] https://www.joshuastevens.net/cartography/make-a-bivariate-choropleth-map/。

[4] Brewer, C.A., Basic Mapping Principles for Visualizing Cancer Data Using Geographic Information Systems (GIS). American journal of preventive medicine, 2006. 30(2): p. S25-S36.

[5] Buckley, A., Understanding Statistical Data for Mapping Purposes.https://www.esri.com/about/newsroom/arcuser/understanding-statistical-data-for-mapping-purposes/。

版权声明

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

多变量可视化——QGIS二元分区着色图相关推荐

  1. Disk Manager — 可视化的硬盘分区对象

    Toy Posted in Apps, KDE, Tools Disk Manager 是一个基于 GNU parted 而编写的可视化硬盘分区对象.哄骗此对象,你可以建树.花样化.从新调解/移动.复 ...

  2. 轻轻回首,重重抬眸,只做自己——2021,QGIS课堂和你在一起

    之所以选择在2021年此时此刻发这篇文章,是因为想把2020年彻底留给过去.在这一年里,无论社会.单位还是个人,都发生了太多的事情,而在我看来最适合形容这些事情的词汇是"丧".好在 ...

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

    行政区划单元是常用的底图要素,通常用颜色进行区分,这些大面积分布的色彩往往决定了一幅地图的配色风格,因此,行政区划图的色彩配置将影响到地图信息表达效果. 本文结合QGIS的[拓扑着色]工具,介绍QGI ...

  4. 使用QGIS分区统计工具实现栅格分类数据的分区计算面积——GlobeLand30地表覆盖数据为例

    在栅格分析中,常常碰到使用分类后的栅格数据按照特定分区统计面积的需求,今天,我将使用QGIS的分区统计工具,演示地表覆盖数据按照地表分类分区域统计面积的过程,希望能给有这方面需求的朋友提供参考.  0 ...

  5. Visdom:Python可视化神器

    Visdom:可视化神器 项目地址:visdom 文章目录 Visdom:可视化神器 visdom实质 visdom核心概念 env:环境 pane:窗格 创建Visdom环境 常用API plot. ...

  6. pytorch学习笔记(八):PytTorch可视化工具 visdom

    Visdom PyTorch可视化工具 本文翻译的时候把 略去了 Torch部分. 项目地址 一个灵活的可视化工具,可用来对于 实时,富数据的 创建,组织和共享.支持Torch和Numpy. 总览 基 ...

  7. 基于python的可视化分析_Python数据的可视化分析,python

    python数据可视化分析 首先载入必要的库 import warnings import numpy as np import pandas as pd import matplotlib.pypl ...

  8. PyTorch (二):数据可视化 (TensorBoard、Visdom)

    目录 TensorBoard Create a summary writer General api format Add scalar `add_scalar` `add_scalars` Add ...

  9. Seaborn数据可视化,举例剖析

    Seaborn数据可视化 单纯去使用matplotlib绘制图像,画出来是可以了,但是人们往往会去追求最佳实践,为了简化代码操作,所以就有了基于matplotlib的"装饰库"-- ...

最新文章

  1. QQ2012 Under Ubuntu
  2. nginx php 书籍,详细介绍Nginx下ThinkPHP5的配置方法
  3. MySQL的SQL 语句:根据从表记录个数对主表排序
  4. 如何将Node.js Streaming MapReduce引入Amazon EMR
  5. 异常检测时间序列_DeepAnT —时间序列的无监督异常检测
  6. 压力焊2021年焊工作业考试题库
  7. 每日一案:“实质性相似加接触”是判定作品侵权的核心标准---摘自“成都法院网”
  8. 用Python实现多国语言文章及URL网页在线自动翻译
  9. 10 个最佳 WordPress 幻灯片插件
  10. Element-UI 上传图片到达一定数量后隐藏图片上传按钮
  11. 图神经网络(ICML2022)
  12. 简述Android手机常用的设备ID
  13. 石墨烯散热科技视频发布,华为Mate20系列将带来极致游戏体验
  14. “铜三铁四“来一套程序员内卷超车赛道-音视频开发
  15. Word文档如何进行字数统计
  16. 根据树状数据渲染树状下拉选项
  17. win10下cuda版本升级
  18. 三招屏蔽微信公众账号死亡陷阱
  19. iOS 最为经典的壁纸送上!安排
  20. 计算机三级数据库填空题,计算机三级数据库填空练习题

热门文章

  1. 利用Wolfram Alpha解决数学,金融,物理等应用问题用法举例
  2. 生化危机6pc测试软件,《生化危机6》PC测试程序发布 赶紧检测下你的电脑吧!...
  3. java课后习题答案_《java课后习题答案》.doc
  4. 无线振弦采发仪VS104~416振弦传感器数据采集仪应用工程监测实用
  5. 随机生成四则运算式2-NEW+PSP项目计划(补充没有真分数的情况)
  6. 第8天:布局翘楚 - Grid 布局概述
  7. 遗传算法(python实现,虚拟机中运行)
  8. 日本那些最受欢迎的产品是如何设计的?
  9. exper表达式_4
  10. 电源的电流大会烧毁电流吗