2016-06-21 1 views
2

Je souhaite modifier la couleur des océans (en dehors de la limite du fichier de formes). Je peux découper le raster et changer la couleur de fond, mais ici je veux faire cela avec le shapefile ajouté.Modifier la couleur d'arrière-plan du fichier de forme ajouté dans rasterVis levelplot

library(raster) 
library(rasterVis) 
library(maps) 
library(maptools) 
library(mapdata) 

r <- raster(nrow=361, ncol=576, ymn=-90, ymx=90) 
values(r) <- 1:ncell(r) 
data(wrld_simpl, package = "maptools") 
levelplot(r)+ layer(sp.polygons(wrld_simpl, lwd=0.1, col='gray')) 

enter image description here

Répondre

4

Tout d'abord, le masque Raster avec l'objet SpatialPolygons. Les cellules non couvertes par sont réglées sur NA.

land <- mask(r, wrld_simpl) 

Maintenant, changer la couleur d'arrière-plan (utilisé pour les cellules NA):

catTheme <- rasterTheme(panel.background = list(col='lightskyblue1')) 

Et enfin, afficher le résultat:

levelplot(land, par.settings = catTheme) + 
    layer(sp.polygons(wrld_simpl, 
         lwd=0.1, col='gray')) 

levelplot

+0

Merci mais façon dont il remplit les polygones, je veux changer la couleur de l'océan. –

+0

Désolé, j'ai mal compris votre question. Je vais modifier ma réponse. –

+0

Merci, il y a toujours un problème et c'est que si vous avez des valeurs manquantes dans la terre ils auront la même couleur que l'océan. J'espérais trouver un moyen de changer les couleurs de l'extérieur de la limite du fichier de forme seulement. –