Làm cách nào để thay đổi màu tô đa giác và màu đường viền cho các đối tượng SpatialPolygons?


25

Tôi có SpatialPolygons hoặc SpatialPolygonsDataFrames mà tôi muốn vẽ. Làm cách nào để thay đổi màu bằng ba hệ thống vẽ trong R (đồ họa cơ sở, đồ họa mạng và ggplot2)?

Dữ liệu ví dụ:

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

bản đồ kiểm tra

Câu trả lời:


33

Đồ họa cơ bản ( plot)

Đối với đồ họa cơ sở, col=đặt màu tô và border=đặt màu đường viền.

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

Nếu bạn muốn một bản đồ choropleth, hãy đặt col=thành một vectơ màu, một giá trị cho mỗi giá trị dữ liệu của đa giác.

đồ họa cơ sở

Đồ họa mạng ( spplot)

Không giống như đồ họa cơ sở, col=tùy chọn cho đồ họa mạng điều khiển màu đường viền. Đối với không có biên giới, thiết lập col=NAhoặccol="transparent" .

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

không biên giới

Đối với các điền đa giác, thiết lập col.regionsmột chương trình R màu chuẩn ( gray, rainbow.colors, topo.colors, vv):

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

đồng bào

ggplot2

Như thường lệ đối với ggplot2, bạn chỉ định các cấp độ và nó chọn bảng màu. Tuy nhiên, bạn có thể ghi đè sơ đồ cho toàn bộ cốt truyện. Chi tiết để theo dõi tại một số điểm.


Câu hỏi / câu trả lời tuyệt vời. Có lẽ bạn muốn thêm thông tin về việc thiết lập màu nền. Để đặt màu nền trong spplot, sử dụng par.settings = list(panel.background=list(col="lightblue")).
nogpes
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.