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

30

У меня есть модель рельефа в R

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

Высотный участок

Некоторые значения находятся ниже уровня моря (0), и я хотел бы, чтобы они отображались красным цветом. Как я могу назначить определенные диапазоны для определенных цветов в сюжете ()?

Simbamangu
источник

Ответы:

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 действительно сложны для понимания, слишком много перенесено из других объектов!
Симбамангу