多面板格子图的不同条带高度

时间:2013-07-26 18:28:25

标签: r lattice

很容易更改lattice图的默认条带高度:par.strip.text参数就是所需要的。但是,在一个多面板格子图中是否有一种简单的方法可以获得不同高度的条带?

我想到了一排有两排面板的情节。第一行中条带的高度与第二行中条带的高度不同。

我认为我可以通过创建两个图来创建这样的图形 - 一个用于第一行,另一个用于第二行 - 然后使用grid.layout来定位它们。但我想知道是否有更简单的方法来创建这样一个数字。

1 个答案:

答案 0 :(得分:4)

我修改了this问题中的一个示例(这是一个更接近的重复),并设法实现这一目标:

bgColors <- c("black", "green4", "blue", "red", "purple", "yellow")
txtColors <- c("white", "yellow", "white", "white", "green", "red")
stripHt <- rep(c(-1,0),each = 3)

# Create a function to be passes to "strip=" argument of xyplot
myStripStyle <- function(which.panel, factor.levels, ...) {
    panel.rect(0, stripHt[which.panel], 1, 1,
               col = bgColors[which.panel],
               border = 1)
    panel.text(x = 0.5, y = 0.5,
               font=2,
               lab = factor.levels[which.panel],
               col = txtColors[which.panel])
}    
xyplot(yield ~ year | site, data = barley, strip=myStripStyle)

enter image description here

忽略可怕的颜色。您明白了,我们只是使用自定义条带功能。