Suite

R fortifier provoquant la déchirure des polygones


J'ai du mal à tracer mes données spatiales à l'aide de ggplot2. La carte a l'air bien lorsqu'elle est tracée à l'aide de spplot, donc je suppose que la déchirure se produit au stade de la fortification.

Le code est comme suit:

#installer les paquets bibliothèque(rgdal) bibliothèque(mapproj) bibliothèque(raster) bibliothèque(rgeos) bibliothèque(ggplot2) bibliothèque(plyr) if (!require(gpclib)) install.packages("gpclib", type="source") gpclibPermit() setwd("C:/Users/My Documents") #read in laa to regional mapping #doit agréger aux régions de niveau supérieur car les données sont fournies à ce niveau supérieur laa_region_mapping <- read.csv("laa_region.csv", header = TRUE) #read in LAA polygons laa_polygons <- readOGR("ctyua_ew_generalised_WGS84.json", "OGRGeoJSON") #merge by laa pour ajouter une colonne de région aux données de polygone laa_polygons_with_region_data <- merge(laa_polygons, laa_region_mapping, by.XNM = " ", by.y = "LAA", all.x = TRUE, all.y = TRUE) # agréger les polygones laa par les 21 régions (aggregate by regoin_code) region_polygons <- raster::aggregate(laa_polygons_with_region_data, "region_code")

L'agrégat a fonctionné, comme on peut le voir par le spplot (remarque : j'ai trouvé comment agréger par régions à partir de ce post SE : Joindre les polygones spatiaux par code dans R)

#tracer les polygones résultants à l'aide de spplot spplot(region_polygons)

Mais lorsque je renforce les données spatiales pour pouvoir utiliser ggplot, il y a une déchirure sur les bords.

#fortify et fusionner pour créer le bloc de données ggplot affichera sur la carte [email protected]$id <- rownames([email protected]) region_polygons.points <- fortify(region_polygons, region = "id") # tracer le df fortifié en utilisant ggplot ggplot(data = region_polygons.points, aes(x= long, y = lat, group = id, fill=id)) + geom_polygon()

Comment puis-je arrêter cette déchirure?

J'ai examiné des réponses similaires sur SE, mais les réponses suggèrent que le déchirement se produit lors d'une fusion (quelle est la cause du "déchirement" des polygones (artefacts) à l'aide de R, ggplot et geom_polygon ?). Je pense que ma déchirure se produit au stade de la fortification, car le spplot avant la fortification a l'air bien.


Tu devrais utilisergroupe=groupedans leaescartographie. Voici un exemple reproductible de votre problème :

library("ggplot2") library("raster") x <- getData('GADM', country="GBR", level=2) y <- fortify(x, region="NAME_2") head(y) # long ordre lat trou pièce ID de groupe # 1 -2.049 57.23 1 FALSE 1 Aberdeen.1 Aberdeen # 2 -2.049 57.23 2 FALSE 1 Aberdeen.1 Aberdeen # 3 -2.049 57.23 3 FALSE 1 Aberdeen.1 Aberdeen # 4 -2.050 57.23 4 FALSE 1 Aberdeen.1 Aberdeen # 5 -2,050 57,23 5 FAUX 1 Aberdeen.1 Aberdeen # 6 -2,050 57,23 6 FAUX 1 Aberdeen.1 Aberdeen # mauvais groupe esthétique ggplot(data=y, aes(y=lat, x=long, group= id, fill=id)) + geom_polygon() + guides(fill=FALSE)

# tracé fixe ggplot(data=y, aes(y=lat, x=long, group=group, fill=id)) + geom_polygon() + guides(fill=FALSE)


Voir la vidéo: Les preuves géométriques avec les polygones (Octobre 2021).