Изменить текст на полосах на решетчатых участках - PullRequest
13 голосов
/ 10 сентября 2011

как изменить текст, отображаемый на полосах решетчатых графиков? пример: Предположим, у меня есть тест кадра данных, состоящий из 3 столбцов

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

нормальный вызов решетки

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

даст сюжет с текстом 'A' и 'B' на полосах

Как я могу получить разные тексты, написанные на полосах?

Обслуживающий с другим вектором символов

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

и звонок на strip.custom()

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

не дает желаемого результата.

На самом деле это проблема интернационализации.

Ответы [ 2 ]

14 голосов
/ 10 сентября 2011

Я думаю, что вы хотите получить:

z <-c( "a" , "b" ) # Same number of values as there are panels
xyplot(a~x | y,data=test,strip=strip.custom(factor.levels=z))
8 голосов
/ 10 сентября 2011

Если вы делаете вектор своего персонажа фактором, тогда вы можете просто изменить уровни:

> 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!
...