R:为格子中的不同面/面板指定颜色

jon*_*jon 5 r graph lattice

我的数据如下:

grp = rep(1:2, each = 100)
chr = c(rep(1:10, each = 10), rep(1:10, each = 10))
var = paste (grp, "chr", chr, sep = "")
pos = (rep(1:10, 20)) 
yvar = rnorm(200) 
mydf = data.frame (var, pos, yvar)

require( lattice)
xyplot(yvar ~ pos| factor(var), data = mydf, layout = c(1,10), type = c("g", "h"),
         col = "darkolivegreen", lwd = 4)
Run Code Online (Sandbox Code Playgroud)

(1)我想把不同的颜色用于交替的图形/面板 - 例如 - 2chr1是暗绿色但是chr10说是紫色.然后又是深橄榄绿和紫色等等.

(2)我想使用2chr9位于底部的图表的逆序.

谢谢

在此输入图像描述

Ben*_*ker 6

使用as.table=TRUE时无需更换面板的顺序和groups(连同扩展colVEC)改变科洛(U)RS.

编辑:调整因子水平的顺序

mydf <- 
  data.frame (var, pos, yvar, 
              ##  fvar = factor(var,levels=unique(var)),
              fvar = factor(var, levels = c(outer(2:1, 1:10, paste, sep="chr"))))

xyplot(yvar ~ pos| fvar,
       groups=fvar,
       data = mydf, layout = c(1,10,2), type = c("g", "h"),
       col = c("darkolivegreen","purple"), lwd = 4, as.table=TRUE)
Run Code Online (Sandbox Code Playgroud)

扩展layout命令提供两页.

在此输入图像描述

或者,并排布局可能很好:

library(latticeExtra)
useOuterStrips(xyplot(yvar ~ pos|factor(grp)*factor(chr),
                      groups=grp,
                      col=c("darkolivegreen","purple"),
                      data = mydf, layout = c(2,10), type = c("g", "h"),
                      lwd = 4, as.table=TRUE))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述