lattice
更改绘图的默认条带高度很容易:par.strip.text
:参数就是我们所需要的。但是有没有一种简单的方法可以在一个多面板格子图中拥有不同高度的条带?
我想到了一个有两行面板的情节。第一行中的条的高度将不同于第二行中的条的高度。
我认为我可以通过创建两个图来创建这样的图形——一个用于第一行,另一个用于第二行——然后使用grid.layout
来定位它们。但我想知道是否有更直接的方法来创建这样的数字。
我修改了这个问题的一个例子(这是一个更接近的副本)并设法实现了这一点:
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)
忽略可怕的颜色。你明白了,我们只是使用自定义条带功能。