Comment modifier la couleur de remplissage du polygone et la couleur de la bordure pour les objets SpatialPolygons?

25

J'ai des SpatialPolygons ou SpatialPolygonsDataFrames que je voudrais tracer. Comment changer la couleur en utilisant les trois systèmes de traçage dans R (graphiques de base, graphiques en treillis et ggplot2)?

Exemples de données:

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

carte de test

Ari B. Friedman
la source

Réponses:

33

Graphiques de base ( plot)

Pour les graphiques de base, col=définit le remplissage et border=la couleur de la bordure.

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

Si vous voulez une carte choroplèthe, définie col=sur un vecteur de couleurs, une pour la valeur des données de chaque polygone.

graphiques de base

Graphiques en treillis ( spplot)

Contrairement aux graphiques de base, l' col=option pour les graphiques en treillis contrôle la couleur de la bordure. Pour aucune bordure, définissez col=NAoucol="transparent" .

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

pas de frontière

Pour le remplissage du polygone, définissez col.regionsun schéma de couleurs standard R ( gray, rainbow.colors, topo.colors, etc.):

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

régions col.

ggplot2

Comme d'habitude pour ggplot2, vous spécifiez les niveaux et il choisit le jeu de couleurs. Vous pouvez toutefois remplacer le schéma pour l'ensemble du tracé. Détails à suivre à un moment donné.

Ari B. Friedman
la source
Grande question / réponse. Vous souhaitez peut-être ajouter des informations sur la définition de la couleur d'arrière-plan. Pour définir la couleur d'arrière-plan spplot, utilisez par.settings = list(panel.background=list(col="lightblue")).
nograpes