2011-12-15 13 views
5

Mi datos es el siguiente:R: especificar el color para diferentes facetas/paneles en celosía

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) 

(1) Quiero poner diferentes colores para alternar gráfico/panel de - por ejemplo - 2chr1 es darkolive verde, pero chr10 es decir morado. luego otra vez verde oliva oscuro y púrpura así sucesivamente.

(2) Quiero utilizar el orden inverso del gráfico significa que 2chr9 está en la parte inferior.

Gracias

enter image description here

+0

creo que las subtramas son llamados "paneles" en 'lattice'-mundo y" facetas "en' ggplot'-world ... –

Respuesta

6

Uso as.table=TRUE para cambiar el orden de los paneles y groups (junto con un col vec extendida) para cambiar rs colo (u).

edición: ajustar el orden de los niveles de factor

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) 

El comando layout extendida da dos páginas.

enter image description here

Por otra parte, una disposición de lado a lado podría ser bueno:

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)) 

enter image description here

+0

@ Ben, gracias, AS.TABLE funciona pero el col no produce lo que pretendo hacer. No quería poner un color diferente a los valores alternativos en lugar de alternar el panel ... – jon

+0

?? Pensé que eso fue lo que hizo mi solución. ¿La imagen (recién agregada) no es lo que querías? (¿Olvidaste la especificación 'groups'?) –

+0

@ Ben sí está funcionando, mi error – jon

Cuestiones relacionadas