Legenda raster in R: come colorare valori specifici?


30

Ho un modello di prospetto tracciato in R

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

Diagramma di elevazione

Alcuni dei valori sono al di sotto del livello del mare (0) e vorrei che questi fossero visualizzati in rosso. Come posso assegnare intervalli specifici a colori specifici nella trama ()?

Risposte:


33

Ecco un esempio davvero semplice

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)

inserisci qui la descrizione dell'immagine

Devi solo passare alla trama un vettore di punti di interruzione e un vettore di colori per abbinare i punti di interruzione. Dai un'occhiata al RColorbrewerpacchetto per alcune belle rampe di colore integrate. Controlla anche il classIntpacchetto per creare i punti di interruzione.


Eccellente- imbarazzante per quanto tempo ho armeggiato con questo. Esiste un modo semplice per importare le rampe di colore dal color brewer? EDIT: scusa, ora vedo che ti riferisci a un pacchetto, non al sito!
Simbamangu,

3
@Simbamangu, siamo stati tutti lì. In realtà trovo molti degli esempi di ciò che offusca ciò che viene effettivamente passato come punti di interruzione e colori usando oggetti creati da altri pacchetti (come quelli che suggerisco). Penso che sia più semplice vederlo in questo modo, e poi continuare ad usare gli altri pacchetti per creare punti di interruzione e rampe di colore appropriati senza fare così tanto lavoro.
Andy W,

4
Sono completamente d'accordo con questo: gli esempi in molti dei pacchetti R sono davvero difficili da capire, con troppi dati realizzati da altri oggetti!
Simbamangu,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.