首页 > 解决方案 > 我可以使用 Lattice auto.key 或 key 来制作一个图例,其中一些数据的点和其他数据的线?

问题描述

我经常制作将观察数据表示为点,将模型预测数据表示为线的图形,使用distribute.type来分配图形类型。有没有办法制作只显示点数据的点和线数据的线的图例?auto.key 默认是点,如果我用“list(lines=TRUE)”添加线,则图例会显示每个数据标签的点和线:

x <- seq(0, 8*pi, by=pi/6)

Y1pred <- sin(x)
Y1obs <- Y1pred + rnorm(length(x), mean=0, sd=0.2)
Y2pred <- cos(x)
Y2obs <- Y2pred + rnorm(length(x), mean=0, sd=0.4)
 
xyplot(Y1obs + Y2obs + Y1pred + Y2pred ~ x, 
        type=c('p','p','l','l'), 
        distribute.type=TRUE,
        auto.key=list(lines=TRUE, columns=2)
        )

有一个相当复杂的例子使用 p 上的“key”。158 Deepayans 关于格子的书,我想知道是否有简单的选择? 在此处输入图像描述

标签: legendlattice

解决方案


是的,在 S 之后, 的lines组件key支持不同的type-s (但不支持points)。使用auto.key,你可以做

xyplot(Y1obs + Y2obs + Y1pred + Y2pred ~ x, 
       type=c('p','p','l','l'), 
       distribute.type=TRUE,
       auto.key = list(points = FALSE, lines = TRUE,
                       columns = 2,
                       type = c('p','p','l','l')))

理想情况下,您希望将typeonly 放在lines组件内,如果您使用key. 对于auto.key,无论如何只能有一行,所以这应该没问题。


推荐阅读