我在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的值,但我真的想要两者。有人可以帮忙吗?
感谢。
P.S(代码上的间距道歉,格式化似乎搞砸了一点!)
答案 0 :(得分: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)