2011-09-10 8 views
13

¿cómo cambio el texto que se muestra en las tiras de los diagramas de celosía? ejemplo: supongamos que tengo una prueba de trama de datos que consta de 3 columnasCambiar texto en tiras en diagramas de celosía

x 
[1] 1 2 3 4 5 6 7 8 9 10 

y 
[1] "A" "A" "A" "A" "A" "B" "B" "B" "B" "B" 

a 
[1] -1.9952066 -1.7292978 -0.8789127 -0.1322849 -0.1046782 0.4872866 
[7] 0.5199228 0.5626998 0.6392686 1.6604549 

una llamada normal para una parcela de celosía

xyplot(a~x | y,data=test) 

dará a la trama con el Texto 'A' y 'B' en las tiras

¿Cómo puedo obtener diferentes textos escritos en las tiras?

Un attept con otro vector de caracteres

z 
[1] "a" "a" "a" "a" "a" "b" "b" "b" "b" "b" 

y una llamada a strip.custom()

xyplot(a~x | y,data=test,strip=strip.custom(var.name=z)) 

no da el resultado deseado.

En realidad, es un problema de internacionalización.

Respuesta

8

Si usted hace su carácter vectorial un factor a continuación, puedes cambiar los niveles:

> xyplot(a~x | y,data=test)  # your plot 
> test$y=as.factor(test$y)  # convert y to factor 
> xyplot(a~x | y,data=test)  # should be identical 
> levels(test$y)=c("Argh","Boo") # change the level labels 
> xyplot(a~x | y,data=test)  # new panel labels! 
14

Creo que lo que quiere puede ser obtenido por:

z <-c("a" , "b") # Same number of values as there are panels 
xyplot(a~x | y,data=test,strip=strip.custom(factor.levels=z)) 
+1

que no es necesario el " z 'variable: factor.levels = c ("a", "b") lo hará. – Spacedman

+1

Solo intentaba enfatizar que necesitaba tener la misma cantidad de niveles que los paneles en lugar de la cantidad de puntos de datos –

Cuestiones relacionadas