Переименовать слои, сложенные в гистограмме (rasterVis)
У меня есть следующая проблема, я не смог переименовать стек слоев.
Вот пример моего кода.
###
f <- system.file("external/test.grd", package="raster")
r <- raster(f)
oo<-stack(r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r)
names(oo) <- as.character(2000:2015)
names(oo)
histogram(oo,na.rm=T,col="blue",
panel = function(x, ...) {
panel.histogram(x, ...)
panel.mathdensity(dmath = dnorm, col = "red",
args = list(mean=mean(x),sd=sd(x)),lwd=2.5)
})
###
если использовать только цифры
names(oo) <- as.character(2000:2015)
результат: имена (oo)
[1] "X2000" "X2001" "X2002" "X2003" "X2004" "X2005" "X2006" "X2007" "X2008"
[10] "X2009" "X2010" "X2011" "X2012" "X2013" "x2014" "X2015"
как видно на изображении:
[1] "2000" "2001" "2002" "2003" "2004" "2005" "2006" "2007" "2008"
[10] "2009" "2010" "2011" "2012" "2013" "2014" "2015"
по-видимому, не работает с числами, потому что если я пытаюсь с:
names(oo) <- paste0("hola",1:16)
names(oo)
[1] "hola1" "hola2" "hola3" "hola4" "hola5" "hola6" "hola7" "hola8"
[9] "hola9" "hola10" "hola11" "hola12" "hola13" "hola14" "hola15" "hola16"
результат в порядке в сюжете.
PD: также попробуйте с параметром:
names.attr=as.character(2000,2015)
Все предложения приветствуются.
Привет!
1 ответ
names.attr
аргумент не реализован в histogram
функция (пока). Вместо этого вы должны использовать strip
аргумент предоставлен оригиналом lattice::histogram
функция:
f <- system.file("external/test.grd", package="raster")
r <- raster(f)
oo <- stack(replicate(8, r))
nms <- as.character(2000:2015)
histogram(oo, na.rm = T, col = "blue",
strip = strip.custom(factor.levels = nms),
panel = function(x, ...) {
panel.histogram(x, ...)
panel.mathdensity(dmath = dnorm, col = "red",
args = list(mean=mean(x),
sd=sd(x)),
lwd=2.5)
})