Як змінити колір заповнення полігону та колір межі об’єктів SpatialPolygons?


25

У мене є SpatialPolygons або SpatialPolygonsDataFrames, які я хотів би побудувати. Як змінити колір за допомогою трьох графічних систем у R (базова графіка, гратчаста графіка та ggplot2)?

Приклад даних:

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

тестова карта

Відповіді:


33

Базова графіка ( plot)

Для базової графіки col=встановлюється заливка та border=встановлюється колір рамки.

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

Якщо ви хочете хороплетну карту, встановіть col=вектор кольорів, по одному для значення даних кожного полігону.

базова графіка

Грати грат ( spplot)

На відміну від базової графіки, col=опція для гратчастої графіки керує кольором меж. Без будь-якої межі, встановити col=NAабоcol="transparent" .

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

немає кордону

Для заповнення багатокутника, встановлений col.regionsв стандартній колірній гамі R ( gray, rainbow.colors, topo.colorsі т.д.):

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

кол.регіони

ggplot2

Як зазвичай для ggplot2, ви вказуєте рівні, і він підбирає колірну гаму. Однак ви можете змінити схему для всього сюжету. Деталі, які слід дотримуватися в якийсь момент.


Відмінне запитання / відповідь. Можливо, ви хочете додати інформацію про налаштування кольору фону. Щоб встановити колір фону spplot, використовуйте par.settings = list(panel.background=list(col="lightblue")).
nograpes
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.