Supongo que las 'líneas' a las que te refieres son simplemente los límites del polígono que separan una característica de otra. Si solo quieres mostrar los datos y no necesariamente tienes que quedarte con ggplot2
, una opción posible sería usar spplot
. Simplemente crea un gráfico de los polígonos no unificados con un color de línea "transparente" (ver ?sp.polygons
) y luego agrega el límite de la isla usando layer
de latticeExtra. Ten en cuenta el uso de unionSpatialPolygons
de maptools para fusionar todos los polígonos en uno solo, terminando así con solo la línea costera.
## agregar columna 'id'
gal@data$id <- seq(gal@data$fid) - 1
## unificar polígonos
library(maptools)
gal_union <- unionSpatialPolygons(gal, IDs = rep(1, length(gal)))
## mostrar datos solo con límites de isla
library(latticeExtra)
spplot(gal, "id", col = "transparent", scales = list(draw = TRUE),
at = seq(gal@data$id), col.regions = rainbow(nrow(gal@data))) +
layer(sp.polygons(gal_union, fill = "transparent"))
Si te he malinterpretado y estás intentando fusionar polígonos específicos, por ejemplo, basados en su ubicación espacial, te recomiendo que examines en profundidad ?unionSpatialPolygons
y, por ejemplo, la publicación relacionada en Unir polígonos en R.
Actualización:
Esta sería una posible (aunque muy básica) versión en ggplot2 del código anterior (con la leyenda desactivada).
gal_ff <- fortify(gal)
gal_union_ff <- fortify(gal_union)
ggplot(aes(x = long, y = lat, group = id, fill = id), data = gal_ff) +
geom_polygon() +
geom_path(aes(x = long, y = lat, group = group), data = gal_union_ff,
colour = "black") +
scale_fill_discrete(guide = FALSE) +
coord_equal()