Настройте легенду с дискретными данными

У меня есть данные, значения которых колеблются в пределах (мин. = -3,686638e+18, макс. = 1,647103e+17). Мне нужен график, на котором значения ниже нуля (0) должны отображаться одним цветом, а значения выше нуля (0) до (1,647103e+17) должны быть разделены на 15 классов (цвета/оттенок). Я пробовал сюжет, уровень и сюжет, но не смог выполнить задачу. Данные

> library (raster)
> DAM <- raster("data.tif")
> plot(DAM,col=rev(heat.colors(8, alpha = 1)) ,zlim=c(-6.3913e+17,  5.1913e+16))
> levelplot(DAM,labels = list(at = seq(-6.3913e+17,  5.1913e+16, 1.70E+16)))
> spplot(DAM,labels = list(at = seq(0,  5.1913e+16, 1.70E+16))

Как достичь цели?


person Dipu    schedule 13.01.2020    source источник
comment
Вам будет легче помочь, если вы включите простой воспроизводимый пример с образцом ввода, который можно использовать для тестирования и проверки возможных решений.   -  person MrFlick    schedule 13.01.2020
comment
Это сделано. пожалуйста, проверьте   -  person Dipu    schedule 13.01.2020


Ответы (1)


Я могу построить график, но неудовлетворительные результаты видны. Это потому, что большая часть моего значения находится в пределах близкого диапазона, видимого на частотном графике. Я не знаю, как построить график с такими дискретными данными.

> plot(DAM, 
+      breaks = c(0,  1e+15, 0.647103e+16, 1e+16, 1.647103e+16, 2e+16, 2.6e+16, 5e+16,8e+17, 9e+17,10e+17), col = rev(heat.colors(8, alpha = 1)))

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

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

person Dipu    schedule 13.01.2020