Я создаю некоторые карты из растровых файлов, используя пакет «растровый» в R. Я хотел бы создать сравнительные растры, показывающие несколько карт бок о бок. Для этого важно, чтобы используемые цветовые шкалы были одинаковыми для всех карт, независимо от значений на каждой карте. Например, если карта 1 имеет значения от 0-1, а карта 2 имеет значения от 0 до 0,5, ячейки со значением 0,5 должны иметь один и тот же цвет на обеих картах.Как создать растровые графики с той же цветовой шкалой в R
Например:
- Карта 1 имеет значения от 0 до 1
- Карта 2 имеет значения от 0 до 0,5
- цвет идет от красного (низший) до зеленого (высокий)
Я хотел бы иметь значение 0,5 для того же цвета на обеих картах (то есть желтый, как на полпути между красным и зеленым). Текущее поведение в том, что оно является желтым на карте 1 и зеленым на карте 2.
Я не могу найти способ сделать эту работу. Я не вижу способа установить диапазон значений пикселей для использования с функцией построения графика. setMinMax() не помогает (поскольку «plot» всегда вычисляет значения). Даже попытка установить значения вручную (например, g1 @ data @ max < - 10) не работает (они игнорируются при построении графика).
Наконец, создание стопки карт (которые, как можно ожидать, будет отображать все в одной цветовой гамме) тоже не работает - каждая карта по-прежнему имеет собственную цветовую гамму.
Любые мысли о том, как это сделать?
РЕДАКТИРОВАТЬ:
Решение, которое я в конечном итоге использовала это:
plot(d, col=rev(rainbow(99, start=0,end=1)), breaks=seq(min(minValue(d)),max(maxValue(d)),length.out=100))
решение, в результате чего вы на самом деле лучший ответ. Пожалуйста, положите его как ответ и согласитесь! Я почти пропустил это - я не ищу ответа в вопросе. – TMS 2013-08-26 08:09:41
`spplot` отображает` RasterStack` с глобальной легендой для всех слоев. Пакет `raster` определяет метод` spplot`, поэтому вам не нужно преобразовывать ваш `RasterStack` в объект` Spatial * `, чтобы использовать его. – 2013-08-28 22:44:25