examples r ggplot2 polygon ggmap

r - ggmap examples



Los polĂ­gonos recortan bien ggplot2/ggmap en diferentes niveles de zoom (1)

Estoy jugando con un conjunto de datos espaciales (en su mayoría polígonos sobre un área de una ciudad) y me gustaría producir vistas diferentes, basadas en diferentes niveles de zoom. Todo está bien cuando tengo el cuadro de límite de trazado más grande que el área que contiene los polígonos. Pero en un acercamiento, algunos polígonos obtienen partes que están fuera del cuadro del límite y la salida de esos polígonos es problemática: los puntos del polígono fuera del cuadro del límite no se muestran, lo que da como resultado polígonos que no se recortan en los límites del cuadro del límite ( como se esperaría) pero más bien no se consideran. los polígonos están incompletos y el polígono solo une los puntos que quedan en la gráfica (comportamiento normal, pero no deseado).

Un buen ejemplo digno de toda la discusión, aquí hay una demostración del problema:

#initialisation library(ggmap) require(MASS) data(zips) # overview ggmap(get_map(maptype = "satellite", zoom = 8), extent = "device") + geom_polygon(aes(x = lon, y = lat, group = plotOrder), data = zips, colour = NA, fill = "red", alpha = .5) + geom_path(aes(x = lon, y = lat, group = plotOrder), data = zips, colour = "white", alpha = .7, size = .4) # problematic view x11() ggmap(get_map(maptype = "satellite", zoom = 12), extent = "device") + geom_polygon(aes(x = lon, y = lat, group = plotOrder), data = zips, colour = NA, fill = "red", alpha = .5) + geom_path(aes(x = lon, y = lat, group = plotOrder), data = zips, colour = "white", alpha = .7, size = .4)

¿sabría usted de una buena técnica para recortar adecuadamente los polígonos en los límites del cuadro del límite de la parcela? gracias por tu ayuda

Pascal


En general, este recorte se debe al zoom utilizando los límites de escala (que dejan caer puntos fuera del rango) en lugar de usar los límites de coordenadas (que es un verdadero zoom, simplemente dibujando las partes adentro con las partes fuera del rango aún allí). ggmap no tiene una forma sencilla de indicar que se debe usar el segundo tipo de zoom, pero al mirar la función, las partes relevantes se pueden extraer y volver a juntar:

s12 <- get_map(maptype = "satellite", zoom = 12) ggmap(s12, base_layer=ggplot(aes(x=lon,y=lat), data=zips), extent = "normal", maprange=FALSE) + geom_polygon(aes(x = lon, y = lat, group = plotOrder), data = zips, colour = NA, fill = "red", alpha = .5) + geom_path(aes(x = lon, y = lat, group = plotOrder), data = zips, colour = "white", alpha = .7, size = .4) + coord_map(projection="mercator", xlim=c(attr(s12, "bb")$ll.lon, attr(s12, "bb")$ur.lon), ylim=c(attr(s12, "bb")$ll.lat, attr(s12, "bb")$ur.lat)) + theme_nothing()