Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 多面板点阵图的可变条带高度_R_Lattice - Fatal编程技术网

R 多面板点阵图的可变条带高度

R 多面板点阵图的可变条带高度,r,lattice,R,Lattice,更改lattice绘图的默认条带高度很容易:只需使用par.strip.text参数即可。但是,有没有一种简单的方法可以在一个多面板格子图中显示不同高度的条带 我想到了一个有两排面板的图。第一行中板条的高度将不同于第二行中板条的高度 我认为我可以创建这样一个图形,方法是创建两个图,一个用于第一行,另一个用于第二行,然后使用grid.layout定位它们。但我想知道是否有更直接的方法来创建这样的图形。我修改了问题中的一个示例(这是一个更接近的副本),并设法实现了这一点: bgColors <

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

bgColors我修改了问题中的一个示例(这是一个更接近的副本),并设法实现了这一点:

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)

bgColors我很想称之为Q的复制品,即使它是ggplot Q。不过,这是我能想到的唯一方法,而且应该有效。@joran--谢谢。但我感兴趣的是在一个地块内有不同高度的狭长地带,我能说的最好的是,Q是关于一个不同的问题。(我也不确定如何调整ggplot代码以便与lattice一起使用。我只是尝试改变
par.strip.text
参数中的
元素,以便
随面板而变化。但这不起作用:
需要是单个数字。)不需要。您只需要在每个级别添加不同数量的换行符。这就是重点:向实际变量级别添加换行符。所以我刚刚检查了,该方法(添加换行符)在lattice中似乎没有任何效果。哦,好吧。我很想把它称为Q的复制品,即使它是ggplot Q。不过,这是我能想到的唯一方法,它应该是有效的。@joran--谢谢。但我感兴趣的是在一个地块内有不同高度的狭长地带,我能说的最好的是,Q是关于一个不同的问题。(我也不确定如何调整ggplot代码以便与lattice一起使用。我只是尝试改变
par.strip.text
参数中的
元素,以便
随面板而变化。但这不起作用:
需要是单个数字。)不需要。您只需要在每个级别添加不同数量的换行符。这就是重点:向实际变量级别添加换行符。所以我刚刚检查了,该方法(添加换行符)在lattice中似乎没有任何效果。哦,好吧。快速提示:
哪个.panel
似乎不再工作了(R3.1.3,晶格0.20-30)。但是
panel.number()
也做了同样的事情。快速注释:
哪个.panel
似乎不再工作了(R3.1.3,lattice 0.20-30)。但是
panel.number()
也会这样做。