0

我在 R 中的格子图上获取标签时遇到了一些麻烦。这是下面的示例

x <- c(1,2,3)
y <- c(2,4,6)
z <- c(0.1,0.5,2)
combo <- expand.grid(x,y,z)
combo <- data.frame(combo)
names(combo) <- c("x","y","z")
outcome <- function(l){
    (l[1]*l[2]) / l[3]
}

resp <- apply(combo, 1, outcome)

levelplot(resp ~ x * y | z, data = combo, pretty = TRUE, region = TRUE, 
          contour = FALSE)

理想情况下,我希望每一个都被标记为“z=0.1”、“z=0.5”和“z=2”。我可以让它说出 z (就像它目前所做的那样),让它说出没有 z 的值,但我真的想要两者。任何人都可以帮忙吗?

谢谢。

PS(为代码上的间距道歉,格式似乎有点搞砸了!)

4

1 回答 1

1

z使用您想要的文本作为标签制作一个因素。在这里,我制作了一个新变量zF作为保持z原始变量z不变的一个因素。我还以我喜欢的方式重写了您的数据生成命令;也许你也会发现这很有用。

zz <- c(0.1, 0.5, 2)
combo <- expand.grid( x = c(1, 2, 3),
                      y = c(2, 4, 6),
                      z = zz )
combo$resp <- with(combo, x*y/z)
combo$zF <- with(combo, factor(z, levels=zz, labels=paste("z =", zz)))

levelplot(resp ~ x * y | zF, data = combo, pretty = TRUE, region = TRUE, 
          contour = FALSE)
于 2011-06-07T16:12:52.900 回答