2021 版:使用 R 语言绘制中国省级地图

之前分享过使用 R 语言绘制 2019 年中国省级、市级和区县地图的方法,不过很多小伙伴反映那个课程讲义材料的省份数据文件读取起来会乱码报错,所以这次更新下。

为了让大家更好的掌握使用 R 语言绘制中国省级行政区划地图的方法,我们设计了如下案例:

其他年份的地图数据使用方法也是一样的,之后更新的数据也都将按照类似的结构设计。

加载所需的 R 包 & 设置字体

library(ggspatial)
library(hrbrthemes)
library(tidyverse)
library(sf)
# 设定 ggplot2 绘图主题

# 字体设置
library(showtext)
showtext_auto(enable = TRUE)
font_add("Songti", regular = "song.otf")
cnfont <- "Songti"

theme_set(
theme_ipsum(base_family = cnfont) +
theme(axis.text.x = element_blank(),
axis.text.y = element_blank(),
axis.title.x = element_blank(),
axis.title.y = element_blank(),
panel.grid.major = element_blank())
)

2021 年中国省级行政区划

代码虽然看起来很复杂,实际上在使用的时候直接改改就能用了。为了方便使用,我把所需要的数据放到了三个 rds 文件中:

下面所有的地图数据的坐标参考系都是“+proj=lcc +lat_1=30 +lat_2=62 +lat_0=0 +lon_0=105 +x_0=0 +y_0=0 +ellps=krass +units=m +no_defs”

为了方便大家使用,我们贴心的添加了秦岭-淮河线、国界线、海岸线、胡焕庸线、比例尺和指北针。另外特别容易忽略的一点就是未定国界(新疆的左上角):

英文版本

把所有的中文标签都替换成英语的就可以得到一副英文地图了(下图的英文都是使用百度翻译的):

2020 年中国各省市地区生产总值

我们通常绘制的地图有两大类:填充地图和描点地图,填充地图的又可以分为离散变量的填充和连续变量的填充,上面的 2019 年中国省级行政区划地图实际上就是离散变量的填充,下面是个连续变量填充的示例:2020 年中国各省市地区生产总值

2013 年中国工企业分布及距离秦岭淮河的距离

描点地图也就是在地图上添加一个个坐标点,例如我们在地图上展示 2013 年中国工企业分布及距离秦岭淮河的距离:

也可以添加小地图框格里面的散点:

这里用颜色表示南北方的工企业、散点的大小表示与秦岭淮河线的距离。

2019 年中国各省地区生产总值 & 产业结构

填充地图通常可以和饼图和柱形图结合来展示更多的信息,这种图的绘制通常是先绘制好每一个图再用拼图软件组合起来,不过使用 scatterpie 包可以很容易实现在地图上添加饼图:

这里用饼图展示每个省份的一二三产业比重。

柱形图的添加在 ggplot2 里面看起来似乎还没有特别好的方法。

连续变量转换成分组变量

连续变量可以通过分组转换成排序变量(也是离散变量),分组可以用 cut() 函数,不过不如 case_when() 函数简单明了:

2015 年各省人口密度

我们再来看一下胡焕庸线的使用:

代码看起来很复杂,但是实际上改改就能用了!不用害怕!

点击这里跳转到 RStata 短书平台获取附件:2021 版:使用 R 语言绘制中国省级地图

评论