2 votes

Comment remplacer les couleurs dans un objet ggmap ?

J'utilise une carte d'arrière-plan Stamen dans les ggmap l'emballage. J'aimerais remplacer tous les éléments noirs de l'image d'arrière-plan matricielle (c.-à-d. les couleurs "#000000" avec dire "#C0C0C0" - pour ressembler davantage à la lumière du toner carte de fond).

library(ggmap)
loc <- c(left = -73.706, bottom = 42.6940, right = -73.648, top = 42.7921)
troy <- get_map(location = loc, zoom = 13, maptype = "toner", source = "stamen")
ggmap(troy)

En remplaçant les couleurs comme indiqué ci-dessous, on ne renvoie que la partie matricielle, et l'objet est dépouillé de sa classe ggmap.

class(troy)
troy[troy == "#000000"] <- "#C0C0C0"
ggmap(troy)
class(troy)

Existe-t-il un moyen de remplacer les cellules matricielles sans modifier les autres attributs ?

9voto

Nate Pope Points 1606

Vous pouvez modifier manuellement class y attr pour correspondre à la trame d'origine.

library(ggmap)
loc <- c(left = -73.706, bottom = 42.6940, right = -73.648, top = 42.7921)
troy <- get_map(location = loc, zoom = 13, maptype = "toner", source = "stamen")

attr_troy <- attr(troy, "bb")    # save attributes from original

# change color in raster
troy[troy == "#000000"] <- "#C0C0C0"

# correct class, attributes
class(troy) <- c("ggmap", "raster")
attr(troy, "bb") <- attr_troy
ggmap(troy)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X