2014-10-01 3 views
4

하나의 단일 패널을 사용하지만, Deepayan Sarkar가 래티스 책에서 그림 5.6을 재현합니다. 현재로서는 컬러 바 위에 머리글을 붙이기 위해 고심하고 있습니다 ...xyplot (격자 패키지)의 컬러 바 범례에 머리글을 추가하려면 어떻게합니까?

다음은 재현 가능한 코드입니다.

x <- seq(1,20,.1) 
y <- rnorm(length(x)) 
z <- seq(1,200,length.out=length(x)) 

cols <- rainbow(100)[cut(z,100,label=F)] 

xyplot(y~x, aspect="iso", type=c("p","g"), col=1, pch=21,fill=cols, 
    legend=list(right= 
     list(fun = draw.colorkey, 
      args=list(key=list(col = rainbow,at = do.breaks(range(z),100))))), 
panel=function(x,y,...){ 
panel.xyplot(x,y,...) 
} 
) 

실마리? 감사합니다,

답변

3

그것은 draw.colorkey 어떤 이유로 key= 목록의 title= 속성을 존중하지 않는 것 같다. 그러나 당신은 당신 자신의 grob를 지정할 수 있습니다. 여기서는 packGrob (grid)을 사용하여 colorkey 표준을 수정합니다. 이

library(grid) 
my.legend <- packGrob(
    draw.colorkey(key=list(col = rainbow, at = do.breaks(range(z),100))), 
    textGrob("My title", x = 0, y = 0.5, just = c("left", "centre")), 
    height=unit(2, "lines"),side="top", dynamic=T) 

xyplot(y~x, aspect="iso", type=c("p","g"), col=1, pch=21,fill=cols, 
    legend=list(right=list(fun=my.legend))) 

enter image description here

+0

감사 MrFlick을 시도, 그 일을! :-) – abmo

+0

확실히, 시간을 알아낼 시간은 ... – abmo

+0

답에 감사하지만'groups'이 null이 아니면 작동하지 않습니다. – Sezen

관련 문제