Legenda rastrowa w R: jak pokolorować określone wartości?

30

Mam model wysokości wykreślony w R.

r <- raster("example.dem")
plot(r, col = topo.colors(20))

Działka wysokościowa

Niektóre wartości znajdują się poniżej poziomu morza (0) i chciałbym, aby były wyświetlane na czerwono. Jak mogę przypisać określone zakresy do określonych kolorów na wykresie ()?

Simbamangu
źródło

Odpowiedzi:

33

Oto naprawdę prosty przykład

library(raster)
data(volcano)
volcanoR <- raster(volcano)

#making colors below 100 red and above 180 blue in this example

breakpoints <- c(94,100,120,140,160,180,195)
colors <- c("red","white","white","white","white","blue")
plot(volcanoR,breaks=breakpoints,col=colors)

wprowadź opis zdjęcia tutaj

Wystarczy przekazać wykresowi wektor punktów przerwania i wektor kolorów, aby dopasować punkty przerwania. Sprawdź RColorbrewerpakiet niektórych bardzo ładnych wbudowanych kolorowych ramp. Sprawdź także classIntpakiet do tworzenia punktów przerwania.

Andy W.
źródło
Doskonałe - zawstydzające, jak długo się z tym bawiłem. Czy istnieje prosty sposób importowania kolorowych ramp z kolorowego browaru? EDYCJA: przepraszam, teraz widzę, że masz na myśli paczkę, a nie stronę!
Simbamangu
3
@Simbamangu, wszyscy tam byliśmy. Znalazłem wiele przykładów robienia tego zaciemniającego to, co faktycznie jest przekazywane jako punkty przerwania i kolory za pomocą obiektów utworzonych z innych pakietów (takich jak te, które sugeruję). Myślę, że najłatwiej jest zobaczyć to w ten sposób, a następnie użyć innych pakietów, aby utworzyć odpowiednie punkty przerwania i kolorowe rampy, nie wykonując tyle pracy.
Andy W
4
Całkowicie się z tym zgadzam - przykłady w wielu pakietach R są naprawdę trudne do zrozumienia, z zbyt dużą ilością przeniesionych przez inne obiekty!
Simbamangu