Legenda raster di R: bagaimana cara mewarnai nilai tertentu?

30

Saya memiliki model ketinggian yang diplot dalam R

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

Plot elevasi

Beberapa nilainya berada di bawah permukaan laut (0), dan saya ingin agar tampilannya berwarna merah. Bagaimana cara menetapkan rentang tertentu ke warna tertentu di plot ()?

Simbamangu
sumber

Jawaban:

33

Ini adalah contoh yang sangat sederhana

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)

masukkan deskripsi gambar di sini

Anda hanya perlu meneruskan plot vektor titik istirahat dan vektor warna untuk mencocokkan breakpoint. Lihatlah RColorbrewerpaket untuk beberapa ramp warna yang sangat bagus. Periksa juga classIntpaket untuk membuat breakpoints.

Andy W
sumber
Luar biasa - memalukan berapa lama aku mengutak-atik ini. Apakah ada cara mudah untuk mengimpor jalur warna dari pembuat bir warna? EDIT: maaf, saya sekarang melihat Anda merujuk ke sebuah paket, bukan situs!
Simbamangu
3
@Simbamangu, Kita semua ada di sana. Saya benar-benar menemukan banyak contoh melakukan ini mengaburkan apa yang sebenarnya dilewatkan sebagai breakpoints dan warna dengan menggunakan objek yang dibuat dari paket lain (seperti yang saya sarankan). Saya pikir ini paling sederhana untuk melihatnya seperti ini, dan kemudian menggunakan paket lain untuk membuat breakpoint dan ramp warna yang tepat tanpa melakukan banyak pekerjaan.
Andy W
4
Saya sepenuhnya setuju dengan itu - contoh dalam banyak paket R benar-benar sulit untuk diketahui, dengan terlalu banyak dibawa dari benda lain!
Simbamangu