Jak zmienić kolor wypełnienia wielokąta i kolor obramowania dla obiektów SpatialPolygons?

25

Mam SpatialPolygons lub SpatialPolygonsDataFrames, które chciałbym narysować. Jak zmienić kolor za pomocą trzech systemów kreślenia w R (grafika bazowa, grafika sieci i ggplot2)?

Przykładowe dane:

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 testowa

Ari B. Friedman
źródło

Odpowiedzi:

33

Podstawowa grafika ( plot)

W przypadku grafiki podstawowej col=ustawia wypełnienie i border=ustawia kolor obramowania.

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

Jeśli potrzebujesz mapy choropleth, ustaw col=wektor kolorów, po jednym dla wartości danych każdego wielokąta.

podstawowa grafika

Grafika kratowa ( spplot)

W przeciwieństwie do grafiki podstawowej col=opcja grafiki kratowej kontroluje kolor obramowania. W przypadku braku granicy ustaw col=NAlubcol="transparent" .

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

bez granic

Dla wypełnienia wielokąta, zestaw col.regionsdo standardowego schematu kolorów (R gray, rainbow.colors, topo.colors, itd.)

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

regiony kol

ggplot2

Jak zwykle w przypadku ggplot2, określasz poziomy i wybiera schemat kolorów. Możesz jednak zastąpić schemat dla całej fabuły. Szczegóły do ​​naśladowania w pewnym momencie.

Ari B. Friedman
źródło
Świetne pytanie / odpowiedź. Być może chcesz dodać informacje o ustawianiu koloru tła. Aby ustawić kolor tła spplot, użyj par.settings = list(panel.background=list(col="lightblue")).
nograpes