¿Cómo cambio el color de relleno del polígono y el color del borde para los objetos SpatialPolygons?

25

Tengo SpatialPolygons o SpatialPolygonsDataFrames que me gustaría trazar. ¿Cómo cambio el color usando los tres sistemas de trazado en R (gráficos base, gráficos de red y ggplot2)?

Datos de ejemplo:

library(sp)
Srs1 = Polygons(list(Polygon(cbind(c(2,4,4,1,2),c(2,3,5,4,2)))), "s1")
Srs2 = Polygons(list(Polygon(cbind(c(5,4,2,5),c(2,3,2,2)))), "s2")

SpDF <- SpatialPolygonsDataFrame( SpatialPolygons(list(Srs1,Srs2)), 
            data.frame( z=1:2, row.names=c("s1","s2") ) )
spplot(SpDF, zcol="z")

mapa de prueba

Ari B. Friedman
fuente

Respuestas:

33

Gráficos base ( plot)

Para los gráficos base, col=establece el relleno y border=el color del borde.

plot(SpDF, col="red",border="green")

Si desea un mapa coroplético, establezca col=un vector de colores, uno para el valor de datos de cada polígono.

gráficos base

Gráficos de celosía ( spplot)

A diferencia de los gráficos base, la col=opción para gráficos en celosía controla el color del borde. Para sin borde, establecer col=NAocol="transparent" .

spplot(SpDF, zcol="z", col=NA)

Sin bordes

Para el relleno de polígono, ajuste col.regionsa un esquema R color estándar ( gray, rainbow.colors, topo.colors, etc.):

spplot(SpDF, zcol="z", col.regions=gray(seq(0,1,.01)))

regiones del col.

ggplot2

Como de costumbre para ggplot2, especifica los niveles y elige el esquema de color. Sin embargo, puede anular el esquema para toda la trama. Detalles a seguir en algún momento.

Ari B. Friedman
fuente
Gran pregunta / respuesta. Quizás desee agregar información sobre cómo configurar el color de fondo. Para configurar el color de fondo spplot, use par.settings = list(panel.background=list(col="lightblue")).
nograpes