2015-10-15 76 views
0

我有以下问题,我无法重命名图层堆栈。直方图中堆叠的重命名图层(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" 

所看到的图像:

output 但我需要无“ X“即:

[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) 
      }) 
+0

解决了。 非常感谢@ oscar-perpiñán博士。 – Robles