公告:本号的“地理计算与分析专辑”已经更名为“地理制图与分析专辑”,原先关注该专辑的读者需要重新关注下。
ggplot2
工具包用于绘制地图的有如下几个函数:
geom_sf
coord_sf
geom_map
coord_map
stat_sf
geom_sf_text
geom_sf_label
这些函数中,最常用的是前两个函数,本篇就来介绍这两个函数。
加载相关工具包和示例数据:
library(ggplot2)
library(patchwork)
library(sf)
library(RColorBrewer)
library(tidyverse)
data <- socviz::county_data
albersusa::counties_sf(proj = "laea") %>%
mutate(fips = as.character(fips)) %>%
left_join(data, by = c("fips" = "id")) -> usa
使用geom_sf()
绘制地图:
map <- ggplot(usa) +
geom_sf(aes(fill = log(pop, 10))) +
scale_fill_stepsn(colours = brewer.pal(4, "Spectral"),
breaks = c(4, 5, 6),
name = "pop",
label = c(expression(10^4, 10^5, 10^6))) +
theme_bw()
map
geom_sf()
函数与其他几何图形函数的使用方法类似,区别在于其不用指定x
、y
变量。
coord_sf()
函数用于地图的投影转换:
map + coord_sf(crs = 2345)
上图只是随便指定了一个投影坐标,更多投影坐标的EPSG代码可以在http://epsg.io/上进行查询。
查询界面:查询结果:
map + coord_sf(crs = 8826)
相关阅读
图例中的是如何实现的?见推文grDevices | 如何在图形中使用数学表达式作为标注文本
如何自定义连续变量的分箱图例的配色?见推文ggplot2 | 如何对连续型变量使用离散型调色板进行配色
如何在
ggplot2
绘制的地图上添加图例、指北针?见推文ggspatial | ggplot2的地图制作拓展包(1):如何添加指北针和比例尺