Laden...
Map in R erstellen
Karten und andere GIS-Operationen lassen sich ebenfalls prima mit R ausführen! Hier sind allerdings ein paar weitere Pakete notwendig. Für dieses Beispiel sind es die Pakete sp
und raster
, die man vom CRAN-Server herunterladen kann.
Ebenfalls benötigt man entsprechende Shapefiles, die man zum Teil frei aus dem Internet herunterladen kann. Für dieses Beispiel habe ich die benötigten Länder aus einem World-Shapefile extrahiert. Dieses kleine Shapefile steht hier zum Downloald bereit.
Diese Grafik wurde mit folgendem Code erstellt:
library(sp)
library(raster)
shCA <- shapefile("CA.shp")
shCA <- spTransform(shCA, CRS('+proj = longlat +datum = WGS84'))
pop <- cut(shM$POPULATION, c(1,50000,1000000,10000000,50000000,100000000,150000000),levels = 1:7)
op <- par(mar = c(0.5, 0.5, 0.5, 0.5))
plot(1, 1, xlim = c(-120, -75), ylim = c(0, 40), axes = FALSE, xlab = "", ylab = "")
x1 <- seq(-125, -72, len = 200)
for(i in 1:200){
polygon(c(x1[i], x1[i] + 0.5, x1[i] + 0.5, x1[i]), c(-10, -10, 50, 50), col = colorRampPalette(c("#3d55af", "#27a7be"))(200)[i], border = NA)
}
for(i in seq(-115, -75, 10)) abline(v = i)
for(i in seq(5, 35, 10)) abline(h = i)
for(i in seq(-115, -85, 10)) text(i + 0.5, 40, paste(i, "° E"), adj = 0, cex = 0.7)
for(i in seq(5, 35, 10)) text(-120, i + 0.8, paste(i, "° N"), cex = 0.7)
plot(shM, col = terrain.colors(9)[shM$CODE], add = TRUE)
points(coordinates(shM), pch = 21,bg = adjustcolor(2, 0.6), cex = c(0.7, 1, 1.3, 1.6, 1.9, 2.2, 2.5)[bv])
legend(-114.5, 7, legend = c("<50,000", "50,001-1,000,000", "1,000,001-10,000,000", "10,000,000-50,000,000", "50,000,000-100,000,000", ">100,000,000"), pch = 21,
pt.bg = adjustcolor(2, 0.6), pt.cex = c(0.7, 1, 1.3, 1.6, 1.9, 2.2, 2.5), box.col = "white", ncol = 2, cex = 0.8, title = "Population", bg = "white")
arrows(-82, 28, -82, 32, lwd = 2.5, length = 0.15)
text(-82, 34, "N", cex = 1.5)
par(op)