我想根据z的值为每个面板中的点着色。 我目前拥有的代码不区分每个面板的z值。 我意识到我需要一个面板功能,panel.superpose可能会有所帮助,但我迷路了。
x <- c(1:10, 1:10)
y <- c(10:1, 10:1)
z <- c(1:10, seq(1,20, by=2))
a = c(rep("one",10),rep("two",10))
xyplot(y ~ x |a,
panel=function(x,y, ...) {
panel.xyplot(x,y, pch=20, cex=0.3, col = ifelse(z < 5, "red", "black"))
}
)
正确的情节只会在“两个”面板中将两个点涂成红色。
答案 0 :(得分:5)
这应该是你想要的:
DF <- data.frame(x, y, z, a)
xyplot(y ~ x | a, groups = z < 5, data = DF, col = c("black", "red"),
pch=20, cex=0.3)
为了阐明颜色的顺序,z < 5
创建了一个逻辑向量。由于order(c(TRUE,FALSE))
将FALSE
放在TRUE
之前,因此这决定了组颜色的排序。因此,z<5
的所有值都采用第二种颜色,z
的所有其他值采用第一种颜色。