2011-12-15 7 views
5

La mia tecnica è la seguente:R: specificare il colore per le diverse sfaccettature/pannelli in 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) 

(1) Voglio mettere colori diversi per alternano grafico/pannello - per esempio - 2chr1 è darkolive verde, ma chr10 è viola. poi di nuovo verde oliva scuro e viola così via.

(2) Voglio utilizzare l'ordine inverso del grafico significa che 2chr9 è nella parte inferiore.

Grazie

enter image description here

+0

penso che le sottotrame sono chiamati "pannelli" in 'lattice'-mondo e" facet "in" ggplot'-world ... –

risposta

6

Usa as.table=TRUE per modificare l'ordine dei pannelli e groups (insieme ad una estesa col vec) per cambiare colo (u) rs.

modificare: regolare ordine di livelli di fattore

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) 

Il layout comando esteso dà due pagine.

enter image description here

In alternativa, un layout side-by-side potrebbe essere bello:

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, grazie, AS.TABLE funziona ma il col doesnot non produce ciò che intendo fare. Non volevo mettere il colore diverso ai valori alternativi piuttosto al pannello alternativo ... – jon

+0

?? Ho pensato che fosse la mia soluzione. L'immagine (appena aggiunta) non è ciò che volevi? (Hai dimenticato le specifiche 'groups'?) –

+0

@ Ben sì funziona, colpa mia – jon

Problemi correlati