2011-09-10 14 views
13

come modificare il testo visualizzato nelle strisce di trame reticolari? esempio: supponiamo di avere un test di frame di dati composto da 3 colonneModificare il testo su strisce in trame griglie

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 normale chiamata ad una trama reticolare

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

darà la trama con il testo 'A' e 'B' sulle strisce

Come posso scrivere testi diversi sulle strisce?

Un attept con un altro carattere vettoriale

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

e una chiamata a strip.custom()

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

non dà il risultato desiderato.

In realtà è un problema di internazionalizzazione.

risposta

8

Se fate il vostro carattere vettoriale di un fattore di allora si può solo cambiare i livelli:

> 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

Penso che ciò che si vuole può essere ottenuto:

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

Non è necessario il ' z 'variable: factor.levels = c ("a", "b") lo farà. – Spacedman

+1

Stavo solo cercando di sottolineare che era necessario avere lo stesso numero di livelli dei pannelli piuttosto che il numero di punti dati –

Problemi correlati