geofacet
包创建一个网格
基于 1830 年的法国地图,在 Guerry
包中。
底图,
Guerry::gfrance85
是85个省(不包括科西嘉岛)的SpatialPolygonsDataFrame
当时
我有两个问题:
geofacet
包来识别这个[但我会把它保存为一个单独的查询]下面是我的工作MRE。我选择使用 17 x 17 网格,因为任何更小的网格都会产生重复的单元格 对于部门。
library(sp)
library(geofacet)
library(ggplot2)
library(dplyr)
#library(tidyr)
library(Guerry)
# scale a variable into n integer bins
bin <- function(x, n=10){
1 + floor(n * (x - min(x)) / (max(x) - min(x)))
}
data(gfrance85, package = "Guerry")
dept <- data.frame(gfrance85)[,"dept"]
dep.names <- data.frame(gfrance85)[,"Department"]
region.names <- data.frame(gfrance85)[,"Region"]
# extract department centroids
xy <- coordinates(gfrance85) |>
as.data.frame() |>
setNames(c("x", "y"))
# make the grid data.frame
nbin <- 17 # size of grid
gfrance85_grid <- data.frame(code = dept,
name = as.character(dep.names),
row = bin(xy$x, nbin),
col = bin(xy$y, nbin))
head(gfrance85_grid)
我的网格数据集是这样的:
code name row col
1 1 Ain 15 8
2 2 Aisne 12 16
3 3 Allier 11 9
4 4 Basses-Alpes 16 4
5 5 Hautes-Alpes 16 5
6 7 Ardeche 13 5
当我绘制这个时,如下图所示,它显示了第一个问题:网格中有太多的孔。 我如何处理这个数据集以关闭一些漏洞(没有重复的单元格)?
gfrance85_grid |>
mutate(label = paste(code, "\n", name)) |>
ggplot(aes(x = row, y = col)) +
geom_tile(color = "black",
fill = scales::alpha("blue", .3)) +
geom_text(aes(label = label), size = 2) +
coord_equal()