Растровая легенда в 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пакет для создания точек останова.


Отлично - неловко, как долго я возился с этим. Есть ли простой способ импортировать цветовые палитры из цветного пивовара? РЕДАКТИРОВАТЬ: извините, теперь я вижу, что вы имеете в виду пакет, а не сайт!
Симбамангу

3
@Simbamangu, мы все были там. На самом деле я нахожу много примеров того, как запутывать то, что фактически передается в виде точек останова и цветов, с использованием объектов, созданных из других пакетов (например, тех, которые я предлагаю). Я думаю, что проще всего увидеть это так, а затем использовать другие пакеты для создания соответствующих точек останова и цветовых шкал, не выполняя при этом такой большой работы.
Энди W

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