Растрова легенда на R: як забарвити конкретні значення?


30

У мене модель висоти побудована в R

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

Ділянка висоти

Деякі значення знаходяться нижче рівня моря (0), і я хотів би, щоб вони відображалися червоним кольором. Як я можу призначити конкретні діапазони певним кольорам у графіці ()?

Відповіді:


33

Ось справді простий приклад

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)

введіть тут опис зображення

Вам просто потрібно передати сюжету вектор точок розриву та вектор кольорів, щоб вони відповідали точкам прориву. Ознайомтесь з RColorbrewerпакетом для деяких дуже приємних вбудованих кольорових рамп. Ознайомтесь також з classIntпакетом для виготовлення точок прориву.


Відмінно - соромно, як довго я з цим стикався. Чи є прямий спосіб імпортувати кольорові рампи від кольорового пивовара? EDIT: Вибачте, тепер я бачу, що ви посилаєтесь на пакет, а не на сайт!
Сімбамангу

3
@Simbamangu, Ми всі були там. Насправді я знаходжу багато прикладів того, щоб зробити це приглушеним, що насправді передається як точки прориву та кольори, використовуючи об’єкти, створені з інших пакетів (наприклад, ті, які я пропоную). Я думаю, що найпростіше побачити це так, а потім перейти до використання інших пакетів для створення відповідних точок прориву та кольорових рамп, не роблячи так багато роботи.
Andy W

4
Я повністю з цим погоджуюся - приклади багатьох пакетів R справді важко розібратися, із занадто великою кількістю перенесених з інших об'єктів!
Simbamangu
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.