Ich habe Clipping-Probleme, wenn ich versuche, ggmap mit Shape-Dateien zu kombinieren. Das Beispiel in Kahle und Wickham (2013: 158) funktioniert gut, weil das Rasterbild von ggmap die gesamte Formdatei abdeckt. Im Folgenden sehen Sie ein Beispiel dafür, was passiert, wenn ich die Formdatei für US-Bundesstaaten auf einem ggmap-Diagramm plotten möchte, das einen kleineren Bereich abdeckt. Die ggmap zeigt New York City und ich möchte es mit den Grenzen für US-Staaten überlagern (nur als Beispiel). Die resultierende Karte macht keinen Sinn. Das Problem ist, dass die Formdatei geclippt wird und ggplot die nicht geclippten Punkte verbindet. Unten ist der Code. Die Formdatei ist von here. Ich zeige nur die letzte Handlung hier.Plotten Shape-Dateien mit ggmap: Clipping, wenn Shape-Datei größer als ggmap ist
Wie kann ich dieses Problem lösen?
path <- "PATH TO SHAPEFILE"
library("ggmap")
library("rgdal")
# shapefile
states <- readOGR(dsn = path, layer = "states")
states_df <- fortify(states)
# plot shapefile
plot(states, lwd = 0.1)
ggplot(states_df, aes(long, lat, group = group)) +
geom_polygon(colour = "black", fill = NA, size = 0.1)
# combine ggmap with shapefile
map <- get_map("new york city", zoom = 10, source = "stamen")
ggmap(map, extent = "device")
ggmap(map, extent = "device") +
geom_polygon(aes(long, lat, group=group), data = states_df, colour = "red", fill = NA, size = 1)
Kahle, David und Hadley Wickham. 2013. "Ggmap: Räumliche Visualisierung mit ggplot2." The R Journal 5 (1): 144-61.
Ist auf diese Frage hier verwandtes Problem: http://stackoverflow.com/questions/13469566/polygons-nicely-cropping-ggplot2-ggmap-at-different-zoom-levels? – user1965813