我有一个实验数据的格子图,它有4个数据集(即下面的“配置”中有4个不同的子集),每个数据集根据配置进行细分,然后根据风向分组在每个测试类型中,“Dir ”。我可以根据所有绘图中的“Dir”分组设置点的形状,但我不能根据“Config”设置颜色,以便例如第一个绘图具有所有红点,第二个绘图具有所有蓝点我在格子中使用了一个xyplot,而剧情的代码是:
xyplot(ach[,"F"]~ach[,"Ar_sqrt"] | Config., type=c("p"),ach, groups=Dir,
auto.key=list(TRUE, space="bottom", columns=4, padding.text=(8)),
Outer=TRUE, allow.multiple=TRUE, as.table=TRUE, scales=list(tick.number=10),
grid=TRUE, par.settings=simpleTheme(pch=points$shape, cex=1.75, col=1),
abline=list(c(0,0.2013), col=2, type="l"), layout=c(1,4),
panel = function( x,y,...) {
panel.abline(lm(y~x),col = "black", lwd=1)
panel.xyplot( x,y,...)
})
我无法附上一张图片,因为我的代表是10岁,道歉。我遇到了设置颜色等不同的方法,但它们似乎都使用分组功能。
数据集在这里可用,(我为pch和col添加了列以尝试使用它但无济于事:
https://www.dropbox.com/sh/ug9kun9rycsb1fw/AABSXuMs9kEWSgeEAcTYhDkxa
重复的任何帮助或方向我都没有非常感激...
答案 0 :(得分:3)
最好使用panel.number()
来完成,这使您可以在调用自定义面板函数时访问当前绘制的面板的索引。
这是一个简单的可重复示例:
library(lattice)
lattice.options(default.theme = standard.theme(color = FALSE))
COLORS = c("blue", "gold", "red", "green", "black", "grey")
xyplot(mpg ~ disp | carb, data = mtcars,
panel = function(x,y,...) {
panel.xyplot(x, y, col=COLORS[panel.number()], pch=16, ...)
})