如何使点大小独立于点阵绘图中的分组

Lyt*_*tze 4 plot r lattice

假设我想绘制一系列不同大小的点的图,使用xyplot如下方法:

> xyplot(1:6 ~ 1:6, cex = 1:6)
Run Code Online (Sandbox Code Playgroud)

情节就像

f1

但是,当我将组添加到图中时,每个组内点的大小是均匀的。

> g <- c('A', 'A', 'B', 'B', 'C', 'C')
> xyplot(1:6 ~ 1:6, groups = g, cex = 1:6)
Run Code Online (Sandbox Code Playgroud)

f2

另外,如果我使用|分组,则在每个方面,点的大小再次从第一个值开始cex

> xyplot(1:6 ~ 1:6 | g, cex = 1:6)
Run Code Online (Sandbox Code Playgroud)

f3

那么有什么解决方案可以使我cex独立于groups|,例如在groups示例中我希望看到像第一个图那样仅具有色差的图。

Dav*_*rek 5

嗯,这有效:

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组的索引(对于颜色)。