2011-06-15 9 views
13

Hola Estoy utilizando el siguiente código para generar una xyplot usando celosíaCómo cambiar el orden de los paneles en los gráficos de celosía simples

xyplot(Rate~Weight|Temp, groups=Week, rate, 
pch=c(15,16,17,3), col=c("blue","red","green","purple"), 
as.table=TRUE, 
xlab="Weight (gr)", ylab="Rate (umol/L*gr)", 
main="All individuals and Treatments at all times", 
strip=strip.custom(strip.names=1), 
key= 
list(text=list(c("Week","1","2","6","8")), 
points=list(pch=c(NA,15,16,17,3),col=c(NA,"blue","red","green","purple")), 
space="right") 
) 

Esto me da el siguiente diagrama: enter image description here

Ahora, después de cambiar el código para incluir el fin del panel como se sugiere:

xyplot(Rate~Weight|Temp, groups=Week, rate, 
index.cond=list(c(4,1,2,3)),#this provides the order of the panels 
pch=c(15,16,17,3), col=c("blue","red","green","purple"), 
as.table=TRUE, 
xlab="Weight (gr)", ylab="Rate (umol/L*gr)", 
main="All individuals and Treatments at all times", 
strip=strip.custom(strip.names=1), 
key= 
list(text=list(c("Week","1","2","6","8")), 
points=list(pch=c(NA,15,16,17,3),col=c(NA,"blue","red","green","purple")), 
space="right") 
) 

y obtenemos el orden correcto enter image description here

Gracias por la ayuda

+0

+1 para proporcionar datos y solución probada. Sería mejor si los datos estuvieran en formato R-ready (usando 'dput' o construyendo un' data.frame'/'matrix' usando' sample', 'runif',' letters' ...). –

+0

@Roman Incluí el código de trabajo y los gráficos para ilustrar espero que ayude :) – BDM

Respuesta

7

que convierten al factor Temp y consiguieron esto:

enter image description here

Puede atemperar con el fin factor de este modo:

levels(rate$Temp) <- c("12", "9", "18", "15") #custom factor order 
+0

@Roman ¡Gracias! una solución tan fácil, la única cosa que no probé. – BDM

+5

Para aclarar, el enrejado ordena el panel según el orden del factor, y cuando se crean los factores, de manera predeterminada, se ordenan primero. Si crea un factor directamente a partir de la variable numérica, hará lo que quiera, pero si lo convierte primero a un carácter, se ordenará alfa-numéricamente, que es lo que le sucedió a usted. – Aaron

+0

@Aron Gracias, huelga decir que no soy un programador y soy nuevo tanto en R como en programación, así que sigo atorado con cosas fáciles. Intentaba usar el índice. Segundo con el código de la trama, pero no conseguía nada. – BDM

Cuestiones relacionadas