Zuerst ggplot2
scheint in der Lage zu sein, dies zu handhaben ziemlich gut:
library(rgdal)
library(ggplot2)
arg_shp <- readOGR("../data/arg_adm/ARG_adm1.shp", "ARG_adm1")
arg_shp_map <- fortify(arg_shp)
gg <- ggplot()
gg <- gg + geom_map(data=arg_shp_map, map=arg_shp_map,
aes(long, lat, map_id=id),
color="#2b2b2b", size=0.15, fill=NA)
gg <- gg + coord_map()
gg <- gg + ggthemes::theme_map()
gg
Da Sie eine GADM Datei verwenden, brauchen Sie nicht wirklich eine externe Shape-Datei tho verwenden verwenden, nur getData()
:
library(maptools)
library(raster)
arg_adm <- getData('GADM', country='ARG', level=1)
arg_adm_map <- fortify(arg_adm)
(gleichen ggplot2
Code von oben funktioniert, nur aus dem Variablennamen sub).
Ich kann nicht das Basis-Plotting-System, um dies (entweder auf einem Grafikgerät) zu plotten. Ich denke, es gibt einige komplexe Polygone in einem Teil der Küste. Wir können damit umgehen ziemlich leicht tho:
library(maptools)
library(raster)
library(rgeos)
library(magrittr)
library(sp)
arg_adm <- getData('GADM', country='ARG', level=1)
gSimplify(arg_adm, 0.01, topologyPreserve=TRUE) %>%
SpatialPolygonsDataFrame([email protected]) -> new_arg
plot(new_arg, lwd=0.25)
(Grundstück Standardränder und die Art und Weise es mit Projektionen in dieser unterschiedlich großen Karte zur Folge hat)
Sofern Sie die Grenze brauchen Präzise, vereinfachte Shapefiles können viel Zeit beim Plotten sparen. Sie können die optimierte Form in ggplot2
als auch verwenden, zusammen mit einem Argentinien zugeschnittene Kartenprojektion:
new_arg_map <- fortify(new_arg)
gg <- ggplot()
gg <- gg + geom_map(data=new_arg_map, map=new_arg_map,
aes(long, lat, map_id=id),
color="#2b2b2b", size=0.15, fill=NA)
gg <- gg + ggalt::coord_proj("+proj=aeqd +lat_0=-37.869859624840764 +lon_0=-66.533203125")
gg <- gg + ggthemes::theme_map()
gg
(Obwohl, coord_map()
‚s Standard-Mercator-Projektion pbly gd genug für die meisten Anwendungen ist)
Screenshots! = Code-Schnipsel. Bitte entfernen Sie das Bild und versuchen Sie stattdessen, den Code zu posten. – hrbrmstr