如何使用 R 语言绘制双变量填充中国地图?

在过去的教程中,我一直给大家分享的都是单变量填充地图的绘制方法,但是有时候我们想在一张地图上展示两个变量,这个时候该怎么绘制地图呢?我们可以选择双变量填充地图。如果我们在 Observable 上搜索“Bivariate Choropleth” 就可以看到一大堆使用 D3 绘制的双变量填充地图,非常炫酷,例如:https://observablehq.com/@d3/bivariate-choropleth

如何使用 R 绘制这种双变量填充地图,Timo Grossenbacher 做了一个非常炫酷的示范:

该图的绘制方法可以参考:https://timogrossenbacher.ch/2019/04/bivariate-maps-with-ggplot2-and-sf/ 学习。不过代码过于复杂,所以我这里对里面的代码进行了简化,并且介绍了如何绘制更多分阶的双变量填充地图(该作者只给出了三阶的画法)。

我暂时也没有时候绘制这种地图的数据,所以下面的演示中我是用随机生成的变量。

准备工作:

数据:

  1. county_simple.rds:中国县级地图(R 文件,sf 对象);
  2. china_full_map.json:中国省级地图数据(GEOJSON 格式);

加载 R 包:

library(sf)
library(ggspatial)
library(readr)
library(stringr)
library(tidyr)
library(purrr)
library(hrbrthemes)

# 设置字体
cnfont <- "SourceHanSerifSC-Medium"

我这里使用的是思源宋体,我这种字体设置的方法仅限 Mac 系统,Windows 系统请使安装配置教程中介绍的方法设置。

更多内容欢迎加入课程学习~

点击这里跳转到 RStata 短书平台获取附件:如何使用 R 语言绘制双变量填充中国地图?

评论