2012-03-02 2 views
1

Следующий код раскрашивает фоновые рисунки панели pairs в R. Как я могу раскрасить диагональную панель (где печатаются имена переменных)? Как вы можете видеть, я попробовал, но имена переменных неправильно выровнены (по какой-либо причине).R: Как раскрасить диагональные панели в парах()?

count <- 0 
mypanel <- function(x, y, ...){ 

    count <<- count+1 
    bg <- if(count %in% c(1,4,9,12)) "#FDFF65" else "transparent" ll <- par("usr") 
    rect(ll[1], ll[3], ll[2], ll[4], col=bg) points(x, y, cex=0.5) 
} 

mydiag.panel <- function(x, ...){ 

    ll <- par("usr") 
    rect(ll[1], ll[3], ll[2], ll[4], col="#FDFF65") } 

U <- matrix(runif(4*500), ncol=4) 
pairs(U, panel=mypanel, diag.panel=mydiag.panel) 

ответ

2

Явное установка label.pos = 0.5, кажется, работает для меня:

pairs(U,panel = mypanel, diag.panel=mydiag.panel,label.pos = 0.5) 

по умолчанию, как представляется 0.5 + has.diag/3, где has.diag установлен в TRUE, когда вы указать свой собственный пользовательский diag.panel функцию, которая заканчивается вверх изменяя по умолчанию - 0,5 + 1/3. Честно говоря, я не знаю, почему это было бы.

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

+0

спасибо, joran, отлично решена. –

Смежные вопросы