假设我想绘制一系列不同大小的点的图,使用xyplot如下方法:
> xyplot(1:6 ~ 1:6, cex = 1:6)
Run Code Online (Sandbox Code Playgroud)
情节就像

但是,当我将组添加到图中时,每个组内点的大小是均匀的。
> g <- c('A', 'A', 'B', 'B', 'C', 'C')
> xyplot(1:6 ~ 1:6, groups = g, cex = 1:6)
Run Code Online (Sandbox Code Playgroud)

另外,如果我使用|分组,则在每个方面,点的大小再次从第一个值开始cex
> xyplot(1:6 ~ 1:6 | g, cex = 1:6)
Run Code Online (Sandbox Code Playgroud)

那么有什么解决方案可以使我cex独立于groups和|,例如在groups示例中我希望看到像第一个图那样仅具有色差的图。
嗯,这有效:
library(lattice)
g <- c('A', 'A', 'B', 'B', 'C', 'C')
xyplot(1:6 ~ 1:6, groups = g,
panel=function(x,y,subscripts,...) {
panel.superpose(x,y,subscripts,...,
panel.groups=function(x,y,subscripts,group.number,...){
panel.xyplot(x,y,cex=subscripts,col=group.number)}
)
}
)
Run Code Online (Sandbox Code Playgroud)
subscripts跟踪整个数据集的索引(对于点大小)和group.number组的索引(对于颜色)。