У меня есть растровые объекты с категориальными значениями (-1,0,1) или некоторые значения с искаженными распределениями, которые я хочу построить с помощью levelplot. Я хочу иметь разные цвета для отрицательных значений, чем для положительных, а белый - для значений около 0. Я хочу, чтобы шкала показывала только несколько дискретных шагов, поскольку я хочу, чтобы расстояние не равно расстоянию и диапазоны иногда были очень узкими. Я используюlevelplot: как настроить уровни шкалы (at) и метки шкалы (метки)
= список цветового ключа (в = с(), метко = с())
передать аргументы levelplot. Это работает для масштаба, но цветовое кодирование фактических значений не равно тому, что отображается на шкале. Если я использую аргумент
при = C()
исключительно, масштаб-значение и значение в решетке соответствующие. Если я добавлю labels=c()
также независимо, они не будут отображаться на шкале, а только на контурных линиях. Мой вопрос:
Как я могу пометить свой масштаб, установить 'at', а значения в решетке соответствуют значениям моего масштаба в одно и то же время? Вот несколько примеров данных:
library(raster)
library(colorspace)
library(rasterVis)
X <- raster(nrow=10,ncol=10)
set.seed(1)
X[] <- rchisq(df=10,n=10*10)*c(1,-1)
X[X[]>0] <- X[X[]>0]+seq(1,100,length.out=length(X[X[]>0]))
Uniques <- cellStats(X,stat=unique)
Uniques.max <- max(Uniques)
Uniques.min <- min(Uniques)
Acol.regions <- colorspace::diverge_hsv(n=9)
Если я использую цветовой ключ:
levelplot(X, col.regions = Acol.regions,colorkey=list(
at=round(c(seq(Uniques.min,0,length.out=5)[-5],0,seq(0,Uniques.max,length.out=5)[-1]),2),
labels=as.character(round(c(seq(Uniques.min,0,length.out=5)[-5],0,seq(0,Uniques.max,length.out=5)[-1]),2)*2)),
margin=F)
Я заканчиваю с правильным способом отображения шкалы, но значения в решетке ошибочно перекрасить:
Если я отдельно передать at=c(), labels=c()
:
levelplot(X, col.regions = Acol.regions,
at=round(c(seq(Uniques.min,0,length.out=5)[-5],0,seq(0,Uniques.max,length.out=5)[-1]),2),
labels=as.character(round(c(seq(Uniques.min,0,length.out=5)[-5],0,seq(0,Uniques.max,length.out=5)[-1]),2)*2),
margin=F)
я в конечном итоге с соответствующими значениями в масштабе и решетки, но метки не отображаются:
С уважением, Эрик