2014-01-14 3 views
0

입니다. 수직선과 여백 텍스트가 포함 된 hexbin (lattice) 플롯을 작성하려고합니다. MWE의 여백 텍스트는 라인 위에 위치해야하며 단순히 라인의 x 값을 명시해야합니다. 여기에 제가 지금까지 가지고있는 것이 있습니다 :격자 그래픽의 여백 좌표는 R

library(hexbin) 

test <- data.frame(VAR1 = rnorm(200), VAR2 = rnorm(200), 
       GROUP = c(rep(-1.5,60), rep(0.4,20), rep(1.9,120))) 

plot(hexbinplot(test$VAR1 ~ test$VAR2, 
      panel = function(...){ 
       panel.hexbinplot(...) 
       panel.abline(v = test$GROUP)}, 
      legend = list(top = 
          list(fun = textGrob, 
           args = list(
            x = unit(test$GROUP/5, "native"), 
            y = 0.5, 
            label = test$GROUP, 
            just = "center"))) 
)) 

이 예제에서 알 수 있듯이, 나는 라벨의 좌표를 설정하는 방법을 찾는 데 어려움을 겪고 있습니다. "실제"x 축 좌표를 사용하는 방법이 있습니까? 아니면 어떻게 상대 좌표를 처리해야합니까?

+1

더 나은 접근 방법은 상단에 맞춤 축 틱과 레이블을 사용하는 것입니다. 현재 라벨이 여러 번 그려지고 있음을 주목하십시오. 아마도'unique (test $ GROUP)' – baptiste

답변

1

@baptiste의 조언에 따라 필자는 맞춤 축 틱과 레이블을 완벽하게 작성하여 코드를 훨씬 더 멋지게 만들었습니다. 여기에 있습니다 :

axisG <- function(side, ...){ 
    if (side == "top"){ 
    at <- unique(test$GROUP) 
    panel.axis(side = side, outside = TRUE, at = at, labels = at, rot = 0) 
    } 
    else axis.default(side = side, ...) 
} 

plot(hexbinplot(test$VAR1 ~ test$VAR2, 
       axis = axisG, 
       panel = function(...){ 
        panel.hexbinplot(...) 
        panel.abline(v = test$GROUP)} 
))