【问题标题】:How can I add header to colorbar legend in xyplot (lattice package)?如何在 xyplot(格子包)中将标题添加到颜色条图例?
【发布时间】:2014-10-01 19:54:33
【问题描述】:

我正在复制 Deepayan Sarkar 的 Lattice 书中的图 5.6,尽管使用的是一个面板。目前,我正在努力在颜色栏顶部获得标题...

这是一些可重现的代码。

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,...)
}
)

有什么线索吗?谢谢,

一个

【问题讨论】:

    标签: r lattice


    【解决方案1】:

    似乎draw.colorkey 出于某种原因不尊重key= 列表的title= 属性。但是你可以指定你自己的 grob。这里我们使用packGrob(来自grid)来修改标准的colorkey grob。试试这个

    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)))
    

    【讨论】:

    • 感谢您的回答,但如果groups 不为空,则不起作用。
    • @Sezen 这个答案是关于为彩条图例添加标题。在我的测试中,这部分仍然适用于groups=,只是颜色颜色由组更改。通常groups= 用于更改不同组的颜色,所以我不确定在显式设置fill= 颜色时如何使用。
    • @MrFlick 是的,你是对的,我专注于用另一个变量为点着色 :) 至少,对于 pch = 21col 可能由 groupsfill 设置由z 值设置。当然,如果我们有很多点,这不会有很大的不同。没什么大不了的。再次感谢。
    猜你喜欢
    • 2021-09-20
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-16
    • 2016-06-22
    • 2020-11-13
    相关资源
    最近更新 更多