Bagaimana cara mengubah warna isian poligon dan warna batas untuk objek SpatialPolygons?

25

Saya memiliki SpatialPolygons atau SpatialPolygonsDataFrames yang ingin saya plot. Bagaimana cara mengubah warna menggunakan tiga sistem plot di R (grafis dasar, grafik kisi, dan ggplot2)?

Contoh data:

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")

peta uji

Ari B. Friedman
sumber

Jawaban:

33

Grafik dasar ( plot)

Untuk grafis dasar, col=atur isian dan border=atur warna batas.

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

Jika Anda menginginkan peta choropleth, setel col=ke vektor warna, satu untuk setiap nilai data poligon.

grafis dasar

Grafik kisi ( spplot)

Tidak seperti grafis dasar, col=opsi untuk grafik kisi mengontrol warna batas. Tanpa batas, atur col=NAataucol="transparent" .

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

tidak ada batasan

Untuk isi poligon, mengatur col.regionsuntuk skema warna R standar ( gray, rainbow.colors, topo.colors, dll):

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

col.regions

ggplot2

Seperti biasa untuk ggplot2, Anda menentukan level dan memilih skema warna. Anda dapat mengganti skema untuk keseluruhan plot. Detail untuk mengikuti di beberapa titik.

Ari B. Friedman
sumber
Pertanyaan / jawaban yang bagus Mungkin Anda ingin menambahkan informasi tentang pengaturan warna latar belakang. Untuk mengatur warna latar belakang spplot, gunakan par.settings = list(panel.background=list(col="lightblue")).
memotret